json数据如何利用JSONObject进行生成并解析?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
类型描述数量数字型字符串字符串型布尔布尔型数组数组对象对象零空值
(1) json中不区分整数,小数等类型,而统一使用数量来存储数字。
(2)数组表示数组,以中括号“[]”括起来,元素之间以逗号分隔,元素可以为任意类型。
(3)对象表示对象,类似于C语言中的结构体,以花括号“{}”括起来,其元素要求为键值对,关键必须为字符串类型的,而价值则可为任意类型。key和价值之间以“:“表示映射关系,元素之间也是以逗号分隔。
(4)字符串、布尔值、零与Java中一样,这里不再赘述。
使用JSONObject需要引用org。json包,推荐通过maven引用,
<强>温馨提示:强>我在构建maven项目的时候屡屡创建失败,在网上查了很久还是搞不定,后来科学上网就搞定了,如果你也创建失败,可以尝试一下。
JSONObject obj=new JSONObject (); obj。put(关键字,值);
直接构建即直接实例化一个JSONObject对象,而后调用其把()方法,将数据写入.put()方法的第一个参数为键值,必须为字符串类型,第二个参数为价值,可以为布尔值翻倍,int,长,对象,以地图及收藏等。当然,双以及int等类型只是在Java中,写入到json中时,统一都会以数字类型存储。
<强>范例:强>
进口org.json.JSONObject; 公开课JSONObjectSample { 公共静态void main (String [] args) { createJson (); } 私有静态孔隙createJson () { JSONObject obj=new JSONObject (); obj.put (“name",“John"); obj.put (“sex",“male"); obj.put (“age" 22); obj.put (“is_student",真实); obj.put (“hobbies"、新String [] {“hiking",“swimming"});//调用toString()方法可直接将其内容打印出来 System.out.println (obj.toString ()); } }
输出结果为:
{“hobbies": [“hiking",“swimming"],“sex":“male",“name":“John",“is_student":真的,“age": 22}
这里可以看的到,为了压缩大小以便于更高效地传输,json把所有空格,换行符等空白符全部去掉了。如果想要直观点看其内容,可以用一些在线的json解析器看,例如:http://www.jsoneditoronline.org/
使用HashMap构建json,实际上即先创建好一个HashMap对象并且将数据打包进的去,而后在创建JSONObject时将其作为一个参数传进去。
<强>范例:强>
公共类JSONObjectSample { 公共静态void main (String [] args) { createJsonByMap (); } 私有静态孔隙createJsonByMap () { Object> Map<字符串;data=https://www.yisu.com/zixun/new HashMap <字符串、对象> (); 数据。把(“名字”,“约翰”); 数据。把(“性”、“男性”); 数据。(“时代”,22); 数据。把(“is_student”,真正的); 数据。把(“爱好”,新String[]{“徒步”、“游泳”}); JSONObject obj=new JSONObject(数据); System.out.println (obj.toString ()); } }
相较于前两种方法,实际开发中应用JavaBean构建json的情况更为常见,因为这样代码的重用率更高。
<强>范例:强>
公共类PersonInfo { 私人字符串名称; 私人字符串性; 私人int年龄; 私人布尔isStudent; 私人String[]的爱好; 公共空间setName(字符串名称){ this.name=名称; } 公共空间setSex(字符串性){ 这一点。性别=性; } 公共空间setAge (int年龄){ 这一点。年龄=年龄; } 公共空间setStudent(布尔isStudent) { 这一点。isStudent=isStudent; } 公共空间setHobbies (String[]爱好){ 这一点。爱好=爱好; }//获取不能少 公共字符串getName () { 返回名称; } 公共字符串getSex () { 返回性; } 公共int getAge () { 返回年龄; } 公共布尔isStudent () { 返回isStudent; } 公共String [] getHobbies () { 返回的爱好; } }
进口org.json.JSONObject; 公开课JSONObjectSample { 公共静态void main (String [] args) { createJsonByJavaBean (); } 私有静态孔隙createJsonByJavaBean () { PersonInfo信息=new PersonInfo (); info.setName (“John"); info.setSex (“male"); info.setAge (22); info.setStudent(真正的); 信息。setHobbies(新String [] {“hiking",“swimming"}); JSONObject obj=new JSONObject(信息); System.out.println (obj); } }json数据如何利用JSONObject进行生成并解析