在这里,我有一个String
,里面有JSONObject
,如下所示:
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
,我需要将此JSONObject
a的String
添加到ArrayList
中,然后将其转换为ArrayList
进入JSON
应该是这样的:
{"id":"5","data":[{"company_name":"ABC","company_address":"hgfh","image":["cmFodWxtaXNocmE="]}]}
我已经尝试过很多改变这种格式的东西,但是我没有得到确切的格式。有时它会将反斜杠\
本身添加到JSON
中,因为我们无法创建已JSON
的{{1}}。
请给我一个合适的解决方案。
提前致谢。
答案 0 :(得分:1)
试试这个,
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();
答案 1 :(得分:0)
我认为你没有正确处理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();
}
答案 2 :(得分:0)
如果您希望使用GSON作为库来序列化和反序列化json数据,那么这是link。访问Tutorail Java Object to/from JSON和图书馆Gson
答案 3 :(得分:0)
这是伪代码。(因此无法编译)
但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}