如何将数组从JSON文件转换为java对象

时间:2014-02-19 10:00:11

标签: json

我有一个带有两个不同数组的JSON文件。我需要将其转换为java对象。有没有任何方法可以使用GSON和JSON来完成它。这就是我们尝试过的。

    package package1;
import org.json.JSONArray;
import org.json.JSONObject;
public class foo
    {
        public static void main(String[] args) throws Exception
        {
            String jsonInput = "{\"JObjects\":{\"JArray1\":[{\"A\":\"a\",\"B\":\"b\",\"C\":\"c\"},{\"A\":\"a1\",\"B\":\"b2\",\"C\":\"c3\",\"D\":\"d4\",\"E\":\"e5\"},{\"A\":\"aa\",\"B\":\"bb\",\"C\":\"cc\",\"D\":\"dd\"}]}}";
            JSONObject outerObject = new JSONObject(jsonInput);
            JSONObject innerObject = outerObject.getJSONObject("JObjects");
            JSONArray jsonArray = innerObject.getJSONArray("JArray1");
            for (int i = 0, size = jsonArray.length(); i < size; i++)
                {
                    JSONObject objectInArray = jsonArray.getJSONObject(i);
                    String[] elementNames = JSONObject.getNames(objectInArray);
                    System.out.printf("%d ELEMENTS IN CURRENT OBJECT:\n", elementNames.length);
                    for (String elementName : elementNames)
                        {
                            String value = objectInArray.getString(elementName);
                            System.out.printf("name=%s, value=%s\n", elementName, value);
                        }
                    System.out.println();
                }
        }
    }

请指导我使用代码。

1 个答案:

答案 0 :(得分:0)

您可以轻松地将json对象解析为java对象,反之亦然。为此,您可以使用Google的框架'gson':http://code.google.com/p/google-gson/

Maven依赖

  

&LT;依赖性&GT;   
&LT;&的groupId GT; com.google.code.gson&LT; /&的groupId GT;   
&LT; artifactId的&GT; GSON&LT; / artifactId的&GT;   
&LT;版本&GT; 2.2.4&LT; /版本&GT;   
&LT; /依赖性&GT;

示例:

我们创建一个java模型类'Person'。那个人有一个名字和一个姓氏:

public class Person {

    private String firstname;
    private String lastname;

    //getters and setters
    ...

    public String toString() {
        return "Person [firstname: "+ firstname + ", lastname: " + lastname + "]";
    }
}

现在我们可以使用gson:

创建一个person对象并将其解析为json字符串
public class PersonToJson {

    public static void main(String[] args) {

        Person person = new Person();
        person.setFirstname("Laurent");
        person.setLastname("Hinoul");

        String json = gson.toJson(person);
        System.out.println(json);
    }
}

输出将是:{“firstname”:“Laurent”,“lastname”:“Hinoul”}

现在我们可以轻松地将该字符串解析回对象:

public class JsonToPerson {

    public static void main(String[] args) {

        final String json = "{"firstname":"Laurent","lastname":"Hinoul"}";
        Gson gson = new Gson();
        Person person = gson.fromJson(json, Person.class);
        System.out.println(person);
    }
}

输出将是:人[名字:Laurent,姓氏:Hinoul]