手机版

浅谈使用爪哇岛解析和生成JSON

时间:2021-09-08 来源:互联网 编辑:宝哥软件园 浏览:

JSON概述

JSON即java描述语言对象符号,是爪哇岛描述语言对象表示法的子集。具有以下特点:

数据放在键值对中;数据由逗号分隔;花括号表示对象;方括号表示数组。

JSON的值可以是:

数字(整数或浮点数)字符串(在双引号中)逻辑值(真实或假)数组(方括号内)对象(花括号内)null

JSON的基本语法

JSON对象

JSON对象在花括号中书写,对象可以包含多个键值对,例如:

{ 'firstName':'John ',' lastName':'Doe'}JSON数组

JSON数组在方括号中书写,数组中可以包含多个对象,例如:

{ ' employees ' :[{ ' first name ' : ' John ',' lastName':'Doe'},{'firstName':'Anna ',' lastName':'Smith'},{'firstName':'Peter ',' last name ' : ' Jones ' } }在以上的实例中,根部的花括号表示这是一个JSON对象,该对象的键是员工,值是一个JSON数组,在这个数组中有3个JSON对象,每个JSON对象之间也使用逗号分隔。

使用爪哇岛读取JSON数据

在JSON官网我们可以查看到各个语法对json的支持,对于爪哇岛来说比较成熟的是谷歌gson。

其专家依赖如下:

依赖性groupIdcom.google.code.gson/groupId人工智能版本2 .2 .4/版本/依赖性现在编写程序解析以下的测试。js :

{ 'cat':'it ',' languages':[ {'id':1,' ide':'Eclipse ',' name':'Java'},{'id':2,' ide':'Xcode ',' name':'Swift'},{'id':3,' ide ' : ' Visual Studio ',' name ' 3: ' c# ' },' pop ' pop '以下的代码将解析以上的json数据:

public void readJSON()引发异常{ //创建json解析器JsonParser解析器=new JsonParser();//使用解析器解析json数据,返回值是JsonElement,强制转化为其子类JsonObject类型JSON对象对象=(JSON对象)解析器。解析(新的FileReader('测试。JSON’);//使用JsonObject的获取(字符串名称)方法返回JsonElement,再使用JsonElement的getassxxx方法得到真实类型系统。出去。println(' cat='对象。得到(猫).getAsString());//遍历JSON数组JsonArray语言=对象。getasjsonarray(' languages ');for(JSoneElement JSoneElement :语言){ JSON对象语言=JsonElement。getasjsonobject();系统。出去。println(' id='语言。get(' id ').getAsInt()',ide=' language.get('ide ').getAsString()',name=' language.get('name ').getAsString());}系统。出去。println(' pop='对象。get(“pop”).getAsString());}使用爪哇岛生成JSON数据

生成JSON数据的关键是JSON对象中的增加和添加属性两个方法。前者用于向JSON对象中添加数组或者另一个JSON对象,后者用于为JSON对象添加属性。以下的代码将生成上面例子中的test.json。

public void createJSON()引发IOException{ JsonObject对象=new JSON对象();//创建一个json对象object.addProperty('cat ',' it ');//为json对象添加属性JsonArray语言=new JsonArray();//创建json数组JsonObject语言=new JSON对象();language.addProperty('id ',1);language.addProperty('ide ',' Eclipse ');language.addProperty('name ',' Java ');languages.add(语言);//将json对象添加到数组language=new JsonObject();language.addProperty('id ',2);language.addProperty('ide ',' XCode ');language.addProperty('name ',' Swift ');languages.add(语言);language=new JsonObject();language.addProperty('id ',3);language.addProperty('ide ',' Visual Studio ');language.addProperty('name ',' c# ');languages.add(语言);object.add('languages ',languages);//将数组添加到json对象object.addProperty('pop ',true);string jsonStr=对象。tostring();//将json对象转化成json字符串PrintWriter pw=new PrintWriter(new BufferedWriter(新文件编写器(' data。JSON’))));pw。打印(jsonStr);pw。flush();pw。close();}

在爪哇岛中构造和解析JSON我用的是org.json,下面是两个函数,一个是创建JSON,一个是从文本构造JSON并解析之。

创建json

//构造json并输出它公共字符串jsonTest()抛出JSONException { JSON对象JSON=new JSON对象();JSONArray JSON成员=new JSONArray();JSON对象成员1=新的JSON对象();member1.put('loginname ','张帆');member1.put('密码','用户密码');member 1 . put(‘email’,‘email protected’);member1.put('sign_date ',' 2007-06-12 ');JSON成员。put(成员1);JSON对象成员2=新的JSON对象();member2.put('loginname ',' ZF ');member2.put('密码','用户密码');member 2 . put(‘email’,‘email protected’);member2.put('sign_date ',' 2008-07-16 ');JSON成员。put(成员2);json.put('users ',json成员);返回JSON。ToString();} 解析json

//从线构造json并解析它公共字符串jsonTest2()引发jsone exception { String JSonString=' { \ ' users ' : [\ ' loginname ' : '张帆\ ',\ ' password ' : ' user pass \ ',\ ' email ' : \ '[email protected]\ ' },{ \ ' loginname \ ' : \ ' zf \ ',\ ' password ' : ' user pass \ ',\ ' email ' 33:JSON对象JSON=new JSON对象(JSON字符串);JSON数组JSON数组=JSON。getjson数组(' user ');字符串loginNames=' loginname list : ';for(int I=0;ijsonarray。length();I){ JSON对象用户=(JSON对象)JSON数组。得到(我);字符串用户名=(字符串)用户。get(' loginname ');if(I==jsonarray。length()-1){ loginNames=userName;}else{ loginNames=userName ',';} }返回loginNames} JAVA中处理JSON还是相当方便的。

版权声明:浅谈使用爪哇岛解析和生成JSON是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。