繁体   English   中英

如何在另一个 JSON 中包含一个 JSON?

[英]How do I include one JSON in another JSON?

我的第一个 JSON 是:

{  
  "categoryId":"Painting",  
  "subCategoryId":"Residential",  
  "alternatives":    [1,2,3,4,5],  
  "criterias":["price","quantity","yom","company"],  
  "answers":[["1000","12343","4543","","4645646"],["12","23","34","","45"],["2014","","2000","1990","2005"],["xyz","","Abc","jkl","mno"]]  
}  

这将来自一个 java URL,这里我使用的是 PHP,在 PHP 中我调用的是一个 java URL。

我的第二个 JSON 是:

{"criterias":"Location"}

我正在使用 JQuery 生成它。 如何将第二个 JSON 包含到第一个 JSON 标准中?

将一个文件包含在另一个文件中的最简单方法是使用 cpp(C 预处理器)。

例如,如果我有 test.json 作为

{"name":"NAME",
#include "another.json"
}

和 another.json 作为

"inner":"value"

你应该能够获得

$ cpp -P test.json
{"name":"NAME",
"inner":"value"
}

当然,您需要通过正确格式化这两部分来确保生成的语法是正确的。

我相信最初的问题是如何在 javascript 中合并这 2 个 JSON 对象。 假设,答案很简单。

var firstJson = {  
  "categoryId":"Painting",  
  "subCategoryId":"Residential",  
  "alternatives":    [1,2,3,4,5],  
  "criterias":["price","quantity","yom","company"],  
  "answerss":[["1000","12343","4543","","4645646"],["12","23","34","","45"],["2014","","2000","1990","2005"],["xyz","","Abc","jkl","mno"]]  
};

var secondJson = {"criterias":"Location"};

firstJson.criterias = $.extend({},firstJson.criterias,secondJson.criterias);

您需要将第一个 JSON 字符串转换为对象并向其添加新属性。

如果是Java,可以使用谷歌的Gson

Gson gson = new Gson();
JsonObject jsonObj = gson.fromJson (jsonStr, JsonElement.class).getAsJsonObject();
jsonObj.add("criterias", "Location");

如果是 JavaScript,

var jObj = JSON.parse(jsonString);
jObj.criterias = "Location";  //jObj.NewItem = "NewValue";

这是您如何编写nested JSON的示例

{"menu": {
   "id": "file",
   "value": "File",
   "popup": {
       "menuitem": [
           {"value": "New", "onclick": "CreateNewDoc()"},
           {"value": "Open", "onclick": "OpenDoc()"},
           {"value": "Close", "onclick": "CloseDoc()"}
        ]
   }
 }}

有关更多示例,请访问以下链接:

http://www.jsonexample.com/

http://json.org/example

在 php 中创建嵌套的 JSON 对象?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM