Java中Json解析

时间:2023-03-10 01:22:58
Java中Json解析

首先准备一个JSON格式的字符串
* String JsonStr = "{object:{persons:" +
"[{name:'呵呵',image:'http://10.0.159.132:8080/Web/s1.png'}," +
"{name:'哈哈',image:'http://10.0.159.132:8080/Web/s1.png'}," +
"{name:'嘿嘿',image:'http://10.0.159.132:8080/Web/s2.jpg'}]}}";

* 然后定义一个Person类
*
*

 class Person{
private String name,image; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getImage() {
return image;
} public void setImage(String image) {
this.image = image;
} }

下面是一个Json解析的程序代码

 class MyDay17Xml {
//json字符串
static String JsonStr = "{object:{persons:" +
"[{name:'呵呵',image:'http://10.0.159.132:8080/Web/s1.png'}," +
"{name:'哈哈',image:'http://10.0.159.132:8080/Web/s1.png'}," +
"{name:'嘿嘿',image:'http://10.0.159.132:8080/Web/s2.jpg'}]}}"; public static void main(String []args) throws JSONException{
List<Person> list=jsonStrToList(JsonStr);
System.out.println(list.size());
}
/**
*
*
*
*/
public static List<Person> jsonStrToList(String jsonStr) throws JSONException{
List<Person> list=new ArrayList<Person>(); //通过字符串,获得最外部的json对象
JSONObject jsonObj=new JSONObject(jsonStr);
//通过属性名,获得内部的对象
JSONObject jsonPersons=jsonObj.getJSONObject("object");
//获得json对象组
JSONArray arr=jsonPersons.getJSONArray("persons");
for(int i=0;i<arr.length();i++){
//循环对象,并通过getString("属性名");来获得值
JSONObject tempJson=arr.getJSONObject(i);
Person person=new Person(); person.setName(tempJson.getString("name"));
person.setImage(tempJson.getString("image"));
list.add(person);
}
return list; } }