我有一个Sring(JSON数组)[{"Phonetype":"Pre","Phone":"918282311"},{"Phonetype":"pre","Phone":"918333222"}]
现在我想将此字符串转换为JSON对象的JSON数组。
在我的代码中我只能创建一个JSONrray对象......
@Override
public ArrayList<TelephoneNumber> convertToAttribute(String s) {
ArrayList<TelephoneNumber> list = new ArrayList<TelephoneNumber>();
JSONParser parser = new JSONParser();
JSONArray arr = null;
try {
arr = (JSONArray) parser.parse(s);
}
catch (ParseException e) {
e.printStackTrace();
}
for (JSONObject jo: arr)
{
System.out.println("obj " +jo.get("Phone");
}
//create a list
return list;
}
如何创建JsonObjects的JsonArray?
答案 0 :(得分:0)
我建议您查看Gson。它是由Google Overlords编写的一系列Java类,用于处理Java类的JSON序列化和反序列化。
因此,对TelephoneNumber
课程的外观做一些假设,你应该能够做到这一点:
Type listType = new TypeToken<ArrayList<TelephoneNumber>>() {
}.getType();
ArrayList<TelephoneNumber> yourList = new Gson().fromJson(s, listType);
然后返回yourList
....
答案 1 :(得分:0)
考虑使用Gson解析json值并在FieldNamingPolicy
上使用GsonBuilder
来获取正确处理上骆驼案例名称的Gson
对象:
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
.create();
Type listType = new TypeToken<ArrayList<TelephoneNumber>>() {}.getType();
List<TelephoneNumber> numbers = gson.fromJson(jsonArray, listType);