0

JSON パスでコロンをエスケープする方法を知りたいです。

これが私の JSON 文字列の例です。

{
"succinctProperties": {
    "cmis:objectId": "35589dd4-647f-4a6d-884f-0575d8a93127",
    "cmis:name": "35589dd4-647f-4a6d-884f-0575d8a93127",
    "cmis:createdBy": "<unknown>",
    "cmis:lastModifiedBy": "Wed Jun 05 16:26:56 CEST 2013",
    "cmis:creationDate": 1370442416100,
    "cmis:lastModificationDate": 1370442416100,
    "cmis:changeToken": null,
    "cmis:baseTypeId": "cmis:document",
    "cmis:objectTypeId": "cmis:document",
    "cmis:isImmutable": false,
    "cmis:isLatestVersion": true,
    "cmis:isMajorVersion": true,
    "cmis:isLatestMajorVersion": true,
    "cmis:versionLabel": "35589dd4-647f-4a6d-884f-0575d8a93127",
    "cmis:versionSeriesId": "version_series_id",
    "cmis:isVersionSeriesCheckedOut": false,
    "cmis:versionSeriesCheckedOutBy": null,
    "cmis:versionSeriesCheckedOutId": null,
    "cmis:checkinComment": "",
    "cmis:contentStreamLength": 210028,
    "cmis:contentStreamMimeType": "application/octet-stream",
    "cmis:contentStreamFileName": "35589dd4-647f-4a6d-884f-0575d8a93127",
    "cmis:contentStreamId": null
}

}

これをモデルとして使用して、ExtJSストアにキーをマップしようとしています:

Ext.define('MyApp.model.SearchDocumentModel', {
extend: 'Ext.data.Model',

fields: [{name:'OBJECT_ID',type:'string',mapping:'succinctProperties.cmis:objectId'},
         {name:'NAME',type:'string',mapping:'succinctProperties.cmis:name'}  
     ] 

});

いくつかのエスケープ方法を使用しましたが、どれも機能しません。

これをロードすると、次のエラーが表示されました。

Uncaught SyntaxError: Unexpected token ILLEGAL

ありがとうございました。

4

2 に答える 2

0

この問題を解決するために、JSON パスに次の構文を使用しました。

succinctProperties["cmis:objectId"]

Ext.define(MyApp.model.SearchDocumentModel', {
extend: 'Ext.data.Model',

fields: [{name:'OBJECT_ID',type:'string',mapping:'succinctProperties["cmis:objectId"]'},
         {name:'NAME',type:'string',mapping:'succinctProperties["cmis:name"]'}  
     ] });
于 2013-06-10T07:22:42.233 に答える