CARVIEW |
Select Language
HTTP/2 200
date: Wed, 23 Jul 2025 18:46:21 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-robots-tag: none
etag: W/"afe065b3907acb1aca098f813544bf6f"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=g1mlO9Jx6cvGzSAAZMhdcBHteV6htTlufka7tLJGIVGYPwtQeEBbuRE49%2FsXr9nWa1KJqsQXAYratUwOz3EAVPZAyH4BQxeJ2aIIMXfNTHV%2FrGzPd%2B2VCun7XaRdvjOZFdIG5GsLk3mEpkst1qfAfHQDKLk85UHnXNQAZa8pglx2SgQO9oDE7yjyFhTqM5H1ZpHgWGko8mMJS2mWdYaBxmKdhocinW2JFw%2BnMpQbLnjE1mxk8YEAi6%2BHMZo4Lx7EmB3onkPMseLpA3k8rGLVFw%3D%3D--%2BmJ1IryUHj5kK9rg--lxLf6uUgM7GhaBn%2BBinRWw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.107443656.1753296380; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 18:46:20 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 18:46:20 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: 912E:D3350:FFD5E8:12EB41F:68812DFC
WJElement Example · netmail-open/wjelement Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 56
WJElement Example
penduin edited this page Nov 16, 2012
·
13 revisions
The following JavaScript code...
var doc = {
"name": "Serenity",
"class": "firefly",
"crew": [
{
"name": "Malcolm Reynolds",
"job": "captain",
"born": 2468
},
{
"name": "Kaywinnet Lee Fry",
"job": "mechanic",
"born": 2494
},
{
"name": "Jayne Cobb",
"job": "public relations"
"born": 2485
}
],
"shiny": true
};
var person = null;
for(i in doc.crew) { // note: tedious...
person = doc.crew[i];
if(person.born == 2468) {
person.born = 2486;
}
}
delete(doc.shiny);
for(i in doc.crew) {
person = doc.crew[i];
console.log(person.name +" ("+ person.job +") is "+ (2517 - person.born));
}
console.log(JSON.stringify(doc));
...is functionally the same as the following C code using WJElement:
WJElement doc = NULL;
WJElement person = NULL;
doc = WJEObject(NULL, NULL, WJE_NEW);
WJEString(doc, "name", WJE_SET, "Serenity");
WJEString(doc, "class", WJE_SET, "firefly");
WJEArray(doc, "crew", WJE_SET);
WJEObject(doc, "crew[$]", WJE_NEW);
WJEString(doc, "crew[-1].name", WJE_SET, "Malcolm Reynolds");
WJEString(doc, "crew[-1].job", WJE_SET, "captain");
WJEInt64(doc, "crew[-1].born", WJE_SET, 2468);
WJEObject(doc, "crew[$]", WJE_NEW);
WJEString(doc, "crew[-1].name", WJE_SET, "Kaywinnet Lee Fry");
WJEString(doc, "crew[-1].job", WJE_SET, "mechanic");
WJEInt64(doc, "crew[-1].born", WJE_SET, 2494);
WJEObject(doc, "crew[$]", WJE_NEW);
WJEString(doc, "crew[-1].name", WJE_SET, "Jayne Cobb");
WJEString(doc, "crew[-1].job", WJE_SET, "public relations");
WJEInt64(doc, "crew[-1].born", WJE_SET, 2485);
WJEBool(doc, "shiny", WJE_SET, TRUE);
WJEInt64(doc, "crew[].born == 2468", WJE_SET, 2486); /* note: awesome! */
WJECloseDocument(WJEGet(doc, "shiny", NULL));
while((person = _WJEObject(doc, "crew[]", WJE_GET, &person))) {
printf("%s (%s) is %d\n",
WJEString(person, "name", WJE_GET, ""),
WJEString(person, "job", WJE_GET, ""),
2517 - WJEInt64(person, "born", WJE_GET, 0));
}
WJEDump(doc);
WJECloseDocument(doc);
Notice how similar the code is both in length and clarity. In fact, using WJElement Selectors can make finding and manipulating JSON data even easier and faster in C than in JS!
You can’t perform that action at this time.