将数据从解析的xml返回到JSON

时间:2015-09-22 21:05:34

标签: json xml angularjs

我试图在角度应用程序中显示包含已解析XML的JSON中的一些数据,而且我被卡住了。

我可以提取其他字段,如{{object.articleId}}。如何从内容对象中提取子数据?例如,如果我需要提取"默认语言环境"?我希望能够{{object.content.default-locale}},但这显然不起作用。

[
{
    "articleId": "393800",
    "classNameId": 0,
    "classPK": 0,
    "companyId": 10157,
    "content": "{\"root\":{\"default-locale\":\"en_US\",\"dynamic-element\":[{\"index\":0,\"index-type\":\"keyword\",\"dynamic-content\":{\"content\":\"[\\\"General News\\\"]\",\"language-id\":\"en_US\"},\"name\":\"Top_News\",\"type\":\"radio\"},{\"index\":0,\"index-type\":\"keyword\",\"dynamic-content\":{\"content\":\"_All\",\"language-id\":\"en_US\"},\"name\":\"Location\",\"type\":\"list\"},{\"index\":0,\"index-type\":\"keyword\",\"dynamic-content\":{\"content\":\"CTC\",\"language-id\":\"en_US\"},\"name\":\"Business_Unit\",\"type\":\"list\"},{\"index\":0,\"index-type\":\"keyword\",\"dynamic-content\":{\"content\":\"hfhfahfcaf;\",\"language-id\":\"en_US\"},\"name\":\"Subtitle\",\"type\":\"text\"},{\"index\":0,\"index-type\":\"keyword\",\"dynamic-content\":{\"content\":\"dhfhfowejfwkfpw\",\"language-id\":\"en_US\"},\"name\":\"Intro_Text\",\"type\":\"text\"},{\"index\":0,\"index-type\":\"keyword\",\"dynamic-content\":{\"content\":\"1430697600000\",\"language-id\":\"en_US\"},\"name\":\"News_Date\",\"type\":\"ddm-date\"},{\"index\":0,\"index-type\":\"\",\"dynamic-content\":{\"content\":\"/image/journal/article?img_id=393803&t=1430750130449\",\"id\":393803,\"language-id\":\"en_US\"},\"name\":\"News_Image\",\"type\":\"image\"},{\"index\":0,\"index-type\":\"keyword\",\"dynamic-content\":{\"content\":\"flkdsjfldsjffa\",\"language-id\":\"en_US\"},\"name\":\"Freeform\",\"type\":\"text_area\"},{\"index\":0,\"index-type\":\"keyword\",\"dynamic-content\":{\"content\":\"test\",\"language-id\":\"en_US\"},\"name\":\"News_Tag_1\",\"type\":\"text\"},{\"index\":0,\"index-type\":\"keyword\",\"dynamic-content\":{\"language-id\":\"en_US\"},\"name\":\"News_Tag_2\",\"type\":\"text\"},{\"index\":0,\"index-type\":\"keyword\",\"dynamic-content\":{\"language-id\":\"en_US\"},\"name\":\"News_Tag_3\",\"type\":\"text\"}],\"available-locales\":\"en_US\"}}",
    "createDate": 1430750130000,
    "description": "",
    "descriptionCurrentValue": "",
    "displayDate": 1430749860000,
    "expirationDate": 1430836418000,
    "folderId": 236650,
    "groupId": 10184,
    "id": 393801,
    "indexable": true,
    "layoutUuid": "",
    "modifiedDate": 1430836418000,
    "resourcePrimKey": 393802,
    "reviewDate": null,
    "smallImage": false,
    "smallImageId": 393804,
    "smallImageURL": "",
    "status": 3,
    "statusByUserId": 10439,
    "statusByUserName": "Admin",
    "statusDate": 1430836418000,
    "structureId": "236652",
    "templateId": "236654",
    "title": "<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"en_US\" default-locale=\"en_US\"><Title language-id=\"en_US\">Test</Title></root>",
    "titleCurrentValue": "Test",
    "treePath": "/236650/",
    "type": "general",
    "urlTitle": "test",
    "userId": 10439,
    "userName": "Admin",
    "uuid": "f06c946e-6efb-4a28-81f3-2a78e1a20814",
    "version": 1.0
  }
]

提前感谢您的协助

1 个答案:

答案 0 :(得分:0)

content实际上是一个json字符串。

您需要在收到数据时对其进行循环并设置:

object.content = angular.fromJson(object.content);

如果你控制发送它的api,也许这也可以在源头清理