14 JSON and Contributor

This section covers the following topics:

14.1 About JSON

JSON is the acronym for JavaScript Object Notation, which is a language that is used for light data exchange. This makes it easy for machines to parse and generate, but it is also easy for humans to read and write. JSON is language-independent, but uses conventions based in C and other programming languages in that family (for example, C++, Java, Python, Perl, and others).

JSON is used in Site Studio as an easy method to maintain passing the data to and from Contributor.

14.2 Passing Configuration To and From Contributor

When Contributor is opened, the JSON configuration object passes flags for reset, update, and preview.

Although JSON is the data transfer format; the data binder concepts of LocalData, ResultSets, ResultSet, fields and rows still exist. Also, some configuration information is passed to the Contributor without the data binder concepts.

The console will display all activity between the Contributor and the content server. Here is an example of the JSON passed requesting that a content item be checked out.

2009/7/18-15:13:34:0737 - REQUEST  - [index.htm] HTTP Request (http_05201522250333165144):
  "url": http://myvmware/stellent/idcplg,
  "contentType": application/json,
  "postdata": {
  "LocalData" : {
    "IdcService" : "SS_CHECKOUT_BY_NAME",   
    "dDocName" : "loafer_frontpage"   
  },   
  "ResultSets" : {
  }
}

2009/7/18-15:13:34:0815 - RESPONSE - [index.htm] HTTP Response (http_05201522250333165144):   
  "status": 0,
  "message": Succeeded,   
  "status text": OK,   
  "response text": {
"LocalData": {
"wfAction": "CHECKOUT",
"dReleaseState": "Y",
"isFinished": "0",
"dDocAccount": "",
"refreshSubjects": "",
"IsWorkflow": "",
"CurRevID": "615",
"dActionDate": "8/18/09 4:14 PM",
"refreshMonikers": "",
"dRevClassID": "71",
"dCheckoutUser": "sysadmin",
"IdcService": "SS_CHECKOUT_BY_NAME",
"changedSubjects": "documents,1250624531742",
"RedirectParams": "IdcService=CHECKOUT_OK&dID=\u003c$dID$\u003e&CurRevCheckoutUser=\u003c$url(CurRevCheckoutUser)$\u003e&CurRevID=\u003c$CurRevID$\u003e\u003c$if IsWorkflowInfo$\u003e&IsWorkflowInfo=\u003c$IsWorkflowInfo$\u003e\u003c$endif$\u003e\u003c$if ClientControlled$\u003e&ClientControlled=\u003c$ClientControlled$\u003e\u003c$endif$\u003e\u003c$if inQueueRedirect$\u003e&inQueueRedirect=1\u003c$endif$\u003e",
"changedMonikers": "",
"dSecurityGroup": "Public",
"IsNotLatestRev": "",
"dActionMillis": "36900553",
"dStatus": "RELEASED",
"dRevLabel": "9",
"dAction": "Check out",
"dID": "615",
"dWorkflowState": "",
"dPublishState": "",
"dIsCheckedOut": "1",
"dClbraName": "",
"prevReleaseState": "",
"refreshSubMonikers": "",
"isCurRevEmpty": "",
"latestID": "615",
"CurRevIsCheckedOut": "0",
"dUser": "sysadmin",
"XmlEncodingMode": "Full",
"CurRevCheckoutUser": "sysadmin",
"dDocName": "loafer_frontpage"
},
"ResultSets": {
}
}

For more information on the console, see Chapter 15, "Contributor Console Window."