Java中Json解析的方法分析

时间:2021-05-20

本文实例讲述了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; }}

PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用:

在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

在线json压缩/转义工具:
http://tools.jb51.net/code/json_yasuo_trans

希望本文所述对大家java程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章