[英]Convert a string which has JSON into list and then add that list into JSON back
在这里,我有一个其中包含JSONObject
的String
,如下所示:
String a = "{"company_name":"ABC","company_address":"hgfh"}";
我使用以下代码将此JSONObject
添加到String
:
JSONObject company_one1 = new JSONObject();
company_one1.put("company_name", cmpy_name.getText()
.toString().trim());
company_one1.put("company_address", cmpy_addrs.getText()
.toString().trim());
a = company_one1.toString();
但是现在我只有String
,我需要将此String
a的JSONObject
添加到ArrayList
,然后将该ArrayList
转换为JSON
,该JSON
应该类似于:
{"id":"5","data":[{"company_name":"ABC","company_address":"hgfh","image":["cmFodWxtaXNocmE="]}]}
我已经尝试了很多方法来更改这种格式,但是我没有得到确切的格式。 有时,它增加了反斜杠\\
本身到JSON
怎么一回事,因为我们不能创建一个JSON
这已经是一个JSON
。
请给我一个适当的解决方案。
提前致谢。
尝试这个,
JSONArray imageArray = new JSONArray();
imageArray.put("cmFodWxtaXNocmE=");
//* you can add more to the image array by using the put method
JSONObject company_one1 = new JSONObject();
company_one1.put("company_name", cmpy_name.getText()
.toString().trim());
company_one1.put("company_address", cmpy_addrs.getText()
.toString().trim());
//* add the image array
company_one1.put("image", imageArray);
//* create a JSONArray for company types,
JSONArray dataArray = new JSONArray();
dataArray.put(company_one1);
//* you can add more to the array here by using the put method
//* now put all in one main JSONObject
JSONObject mainObj = new JSONObect();
mainObj.put("id", "5");
mainObj.put("data", dataArray);
String finalJsonString = mainObj.toString();
我不认为您应该谨慎地使用JSON。 也许您应该这样做:
try {
Map<String, String> map1 = new HashMap<String, String>();
map1.put("company_name", "company_name");
map1.put("company_address", "company_address");
Map<String, String> map2 = new HashMap<String, String>();
map2.put("company_name", "company_name");
map2.put("company_address", "company_address");
Map<String, String> map3 = new HashMap<String, String>();
map3.put("company_name", "company_name");
map3.put("company_address", "company_address");
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
list.add(map1);
list.add(map2);
list.add(map3);
JSONArray jsonArray = new JSONArray(list);
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("id", "5");
jsonObject1.put("data", jsonArray);
} catch (JSONException e) {
e.printStackTrace();
}
这是伪代码。(所以它可能无法编译)但是Gson
非常简单和有用。
class Company {
String name;
... // constructors, getter/setters...
}
class CompanyGroup {
int id;
List<Company> companies;
... // constructors, getter/setters...
}
String name = "ABC";
Company a = new Company(name);
int id = 5;
CompanyGroup g = new CompanyGroup(5);
g.companies.add(a);
String r = new Gson().toJson(g);
System.out.println(r);
// I/System.out﹕ {"companies":[{"name":"ABC"}],"id":5}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.