我有一个带有两个不同数组的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();
}
}
}
请指导我使用代码。
答案 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]