字符串到json对象的JSON数组

时间:2016-05-16 14:16:44

标签: java arrays json

我有一个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?

2 个答案:

答案 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);