在java中将两个json对象合并为单个对象

我有两个json对象,如下所示:

{"name":["Karbonn Smart A12 Star (Black & Silver)","Nokia 220 (Black)","Karbonn Smart A52 Plus (Black & Gold)","Karbonn Smart A12 Star (White & Gold)",.......]} {"price":["Rs. 3,699","Rs. 2,599","Rs. 2,499","Rs. 3,699",..........]} 

我想结合下面的对象,我尝试使用嵌套的每个循环它没有工作我不知道实现这个的过程:

 {"mobile":[{"name":"Karbonn Smart A12 Star (Black & Silver)","price":"Rs. 2,499"}]...........} 

我的代码如下:

 for(Element a:mobilename) { text= a.text(); arr.add(text); obj1.put("name", arr); //a11.add(text); } arr2.add(obj1); for(Element b:price) { text1=b.text(); arr1.add(text1); obj.put("price", arr1); } arr2.add(obj1); arr2.add(obj); obj2.put("mobile", arr2); 

您可以通过for循环迭代,并在每次迭代中创建新的JSONObject并将其添加到集合中。 最后将该集合添加到mergedObject。 例如

 import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.Collection; public class Foo { public static void main(String[] args) throws JSONException { JSONObject object1 = new JSONObject("{\n" + " \"name\": [\n" + " \"Karbonn Smart A12 Star (Black & Silver)\",\n" + " \"Nokia 220 (Black)\",\n" + " \"Karbonn Smart A52 Plus (Black & Gold)\",\n" + " \"Karbonn Smart A12 Star (White & Gold)\",\n" + " \"Karbonn Smart A50s (Black)\",\n" + " \"Karbonn Smart A52 Plus (White & Silver)\",\n" + " \"Karbonn Titanium S2 Plus (White)\",\n" + " \"Karbonn Smart A11 Star (Black)\",\n" + " \"Karbonn Smart A11 Star (White)\"\n" + " ]\n" + "}"); JSONObject object2 = new JSONObject("{\n" + " \"price\": [\n" + " \"Rs. 3,699\",\n" + " \"Rs. 2,599\",\n" + " \"Rs. 2,499\",\n" + " \"Rs. 3,699\",\n" + " \"Rs. 2,699\",\n" + " \"Rs. 2,499\",\n" + " \"Rs. 4,999\",\n" + " \"Rs. 4,399\",\n" + " \"Rs. 4,499\"\n" + " ]\n" + "}"); JSONArray nameArray = object1.getJSONArray("name"); JSONArray priceArray = object2.getJSONArray("price"); JSONObject mergedObject = new JSONObject("{}"); Collection collection = new ArrayList<>(); for (int i = 0; i < nameArray.length(); i++) { JSONObject obj = new JSONObject(); obj.put("name", nameArray.getString(i)); obj.put("price", priceArray.getString(i)); collection.add(obj); } mergedObject.put("mobile", collection); System.out.println(mergedObject); } } 

输出继电器:

 {"mobile":[{"price":"Rs. 3,699","name":"Karbonn Smart A12 Star (Black & Silver)"},{"price":"Rs. 2,599","name":"Nokia 220 (Black)"},{"price":"Rs. 2,499","name":"Karbonn Smart A52 Plus (Black & Gold)"},{"price":"Rs. 3,699","name":"Karbonn Smart A12 Star (White & Gold)"},{"price":"Rs. 2,699","name":"Karbonn Smart A50s (Black)"},{"price":"Rs. 2,499","name":"Karbonn Smart A52 Plus (White & Silver)"},{"price":"Rs. 4,999","name":"Karbonn Titanium S2 Plus (White)"},{"price":"Rs. 4,399","name":"Karbonn Smart A11 Star (Black)"},{"price":"Rs. 4,499","name":"Karbonn Smart A11 Star (White)"}]} 

你可以在这里找到org.json JSON-java

 import java.util.ArrayList; import java.util.List; import org.json.*; public class JsonTest { public String mergeJson(String name, String price) { JSONObject nameJ= new JSONObject(name); JSONObject priceJ= new JSONObject(price); JSONObject mobileJ = new JSONObject(); JSONArray names = nameJ.getJSONArray("name"); JSONArray prices = priceJ.getJSONArray("price"); JSONArray mobiles = new JSONArray(); if(names.length() == prices.length()) { for(int i=0;i