JSON解析字符串
注意:
JSON不能解析单引号里面的字符串,所以请务必确定 你要解析的字符串都是双引号里面的!
1.首先准备一个JSON格式的字符串,
//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'}]}}";
2.然后定义一个Person类
class Person{
private String name,image;
//自己get、set
}
3.下面是一个Json解析的程序代码:
class MyDayJsonXml {
//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'}]}}";
//main方法
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;
}
}
代码简单易懂,相信你看一遍就懂了;