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

如何将数组从JSON文件转换为java对象,json,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 {

我有一个包含两个不同数组的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();
                }
        }
    }
package1;
导入org.json.JSONArray;
导入org.json.JSONObject;
公开课foo
{
公共静态void main(字符串[]args)引发异常
{
字符串jsonInput=“{\'JObjects\”:{\'JArray1\”:[{\'A\':“A\”,“B\”:“B\”,“C\”,{\'A\:“a1\”,“B\”:“b2\”,“C\:“c3\”,“D\:“d4\”,“E\:“e5\”,{\'A\:“aa\”,“B\”,“B\:“C\”:“C\”,“c3\”,“D\”:“d4\”,“E\”,“e5\”,{\\”,“A\”,“aa\”,“bb\”,“dd\”;
JSONObject outerObject=新的JSONObject(jsonInput);
JSONObject innerObject=outerObject.getJSONObject(“作业对象”);
JSONArray JSONArray=innerObject.getJSONArray(“JArray1”);
for(inti=0,size=jsonArray.length();i

请指导我使用代码。

您可以轻松地将json对象解析为java对象,反之亦然。为此,您可以使用谷歌的框架“gson”:

Maven依赖关系


com.google.code.gson
gson
2.2.4

示例:

我们制作了一个java模型类“Person”。此人有名字和姓氏:

public class Person {

    private String firstname;
    private String lastname;

    //getters and setters
    ...

    public String toString() {
        return "Person [firstname: "+ firstname + ", lastname: " + lastname + "]";
    }
}
现在,我们可以创建一个person对象,并使用gson将其解析为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);
    }
}

输出将是:Person[firstname:Laurent,lastname:Hinoul]

“请用整个代码指导我”不是正确的提问方式;具有预期输出的示例输入是最小的。。。如果您已经尝试过做一些事情,则更好,我们不提供按需复制和粘贴代码。