当前位置: 首页 > 实用文档 > 知识 > 什么东西可以直接json解析

什么东西可以直接json解析

2016-10-06 11:00:05 成考报名 来源:http://www.chinazhaokao.com 浏览:

导读: 什么东西可以直接json解析(共3篇)java中解析json的三种方式 第一种public void jsonTx() {String json = {status:200,message:查询成功,data:[{id:1,name:name1,describe:第一条数据}]};JSONObject data = new JSO...

欢迎来到中国招生考试网http://www.chinazhaokao.com/成考报名栏目,本文为大家带来《什么东西可以直接json解析》,希望能帮助到你。

java中解析json的三种方式
什么东西可以直接json解析 第一篇

//第一种

public void jsonTx() {

String json = "{'status':200,'message':'查询成功','data':[{'id':1,'name':'name1','describe':'

第一条数据'}]}";

JSONObject data = new JSONObject(json);

int status = data.optInt("status");

JSONArray data1 = data.getJSONArray("data");

if (status==200) {

for(int i=0;i<data1.length();i++){

String s = data1.getString(i);

System.out.println(s);

JSONObject data2 = JSONObject.fromObject(s);

System.out.println(data2.getString("id"));

【什么东西可以直接json解析】

System.out.println(data2.getString("name"));

System.out.println(data2.getString("describe"));

}

}else if(status==500) {

String msg = data.getString("message");

System.out.println(msg);

}

}

【什么东西可以直接json解析】

//第二种

public void getJson() {

String json =

"{'response':{'data':[{'address':'北京','province':'海淀','district':'西三旗','city':'地铁'}]},'status':'ok'}";

JSONObject jsonObject = JSONObject.fromObject(json);

String status = jsonObject.getString("status");

// System.out.println(str);

String response = jsonObject.getString("response");

JSONObject jsonObject2 = JSONObject.fromObject(response);

JSONArray data = jsonObject2.getJSONArray("data");

for(int i=0;i<data.length();i++){

String s = data.getString(i);

JSONObject data2 = JSONObject.fromObject(s);

System.out.println(data2.getString("address"));

System.out.println(data2.getString("province"));

System.out.println(data2.getString("district"));

System.out.println(data2.getString("city"));

}【什么东西可以直接json解析】

}

//第三种(只获取json里面数据)

public static void main(String[] args) {

String json =

"{\"response\":{\"data\":[{\"address\":\"北京\",\"province\":\"海淀\",\"district\":\"三环\",\"city\":\"桥\"}]},\"status\":\"ok\"}";

String str[] =

json.replaceAll(".*\"address\":\"(.*?)\".*\"province\":\"(.*?)\",.*\"district\":\"(.*?)\",.*\"city\":\"(.*?)\".*",

"$2,$4,$3,$1").split(",");

for (String s : str) {

System.out.println(s);

}

}

JSON入门详解
什么东西可以直接json解析 第二篇

JSON入门

快速浏览JSON与XML表现形式

假如有一个employee对象,它有“姓、名、员工编号、头衔”等信息,先看看JSON是如何来描述它的:

再来看看XML是如何表示的,请看:

从上面描述看,JSON表示法不正是JavaScript中对象描述的一种方式么?正确,这正是JavaScript中的对象构造的原生代码。既然是原生代码,我们把它转换成JavaScript中的对象,这样我们操作对象就比操作字符串方便多了。

【什么东西可以直接json解析】

把JSON字符串转换成JavaScript对象:【什么东西可以直接json解析】

JSON优缺点

优点:

乍看上去,使用JSON的数据分隔符的优点可能并不那么明显,但存在一个根本性的缘由:它们简化了数据访问。使用这些数据分隔符时, JavaScript引擎对数据结构(如字符串、数组、对象)的内部表示恰好与这些符号相同。

JSON的另一个优点是它的非冗长性。在XML中,打开和关闭标记是必需的,这样才能满足标记的依从性;而在JSON中,所有这些要求只需通过一个简单的括号即可满足。在包含有数以百计字段的数据交换中,传统的XML标记将会延长数据交换时间

此外,JSON受到了擅长不同编程语言的开发人员的青睐。这是因为无论在Haskell中或 Lisp中,还是在更为主流的C#和Java中,开发都可以方便地生成JSON。

不足:

和许多好东西都具有两面性一样,JSON的非冗长性也不例外,为此JSON丢失了XML具有的一些特性。命名空间允许不同上下文中的相同的信息段彼此混合,然而,显然在JSON中已经找不到了命名空间。JSON与XML的另一个差别是属性的差异,由于JSON采用冒号赋值,这将导致当XML转化为 JSON时,在标识符(XML CDATA)与实际属性值之间很难区分谁应该被当作文本考虑。

另外,JSON片段的创建和验证过程比一般的XML稍显复杂。从这一点来看,XML在开发工具方面领先于JSON。

JSON实践

预备知识

动态脚本函数eval ()

eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。它接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则直接返回此值,否则返回undefined。

另外,该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数:

最后,需要特别注意的是对象声明语法“{}”并不能返回一个值,需要用括号括起来才会返回值(括号里的脚本是表达式,有返回值,而不是无返回值的逻辑式,因为大括号里的脚本又可能是表达式,又可能是普通的逻辑表达,所以用小括号括起来后明确的说明是值表达式):

这样的对象声明语句,必须用括号括住,以将其转换为表达式,才能返回其值 。这也是使用JSON来进行Ajax开发的基本原理之一。

现来说说本节的重点,就是在应用eval时,,但很多时候我们可能在调用eval函数的外面使用生成的变量,eval不可能在全局空间内执行,这就给开发带来了不少问题,这该如何作?请看继续往下看吧。

我们先来证实一下eval产生的变量是局部性的,在调用eval函数外是不能访问到此变量的。

另外,eval生成的函数也是局部的,它只能在生成它的函数内使用,出函数域就不能调用的到。

现解释一下:

1、对于IE浏览器,默认已经提供了这样的函数:execScript,用于在全局空间执行代码。

2、对于Firefox浏览器,直接调用eval函数,则在调用者的空间执行;如果调用window.eval则在全局空间执行。

JavaScript中的JSON

我们知道,可以使用eval()方法调用JavaScript的编译器把JSON文本转变成对象。因为JSON是JavaScript的一个确切的子集,编译器可以正确地解析JSON文本,然后生成一个对象结构。

eval函数非常快速。它可以编译执行任何JavaScript程序,因此产生了安全性问题。当使用可信任与完善的源代码时才可以使用eval函数。这样可以更安全的使用JSON解析器。使用XMLHttpRequest的web应用,页面之间的通讯只允许同源,因此是可以信任的。但这却不是完善的。如果服务器没有严谨的JSON编码,或者没有严格的输入验证,那么可能传送包括危险脚本的无效JSON文本。eval函数将执行恶意的脚本。

如果关心安全的话,使用JSON解析器可以防止此类事件。JSON解析器只能辨识

JSON文本,拒绝所有脚本,因此它比较安全,JSON官方网站提供的一个开源的JSON解析器和字符串转换器()。

而JSON的字符串转换器(stringifier)则作相反的工作,它将JavaScript数据结构转换为JSON文本。JSON是不支持循环数据结构的,所以注意不能把循环的结构交给字符串转换器。

Java中的JSON

Java中的JSON解释器官方提供了好几种,我们这里使用的是 包,关于如何使用,请参见另一篇《JSON之org.json包测试》 ,它是基于官方包提供的测试改写而来的。

开始实战【什么东西可以直接json解析】

本实例实现了客户端与服务器端通过JSON进行参数的传递与接收,而不是通过原来的XML方式进行通信。页面采用了Prototype的Ajax方式进行异步通信,并采用了官方 进行对象与JSON串的灵活互转。服务器端采用了官方提供 包进行JSON串与Java对象的互转。具体的细节请看代码注释。

客户端实现:

JSON解析详细文档
什么东西可以直接json解析 第三篇

JSON 的含义?

JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式。JSON与XML具有相同的特性,例如易于人编写和阅读,易于机器生成和解析。但是JSON比XML数据传输的有效性要高出很多。JSON完全独立与编程语言,使用文本格式保存。

JSON数据有两种结构:

 

Name-Value 对构成的集合,类似于Java中的Map。 Value的有序列表,类似于Java中的Array。

一个JSON格式的数据示例: {

"Name": "Apple",

"Expiry": "2007/10/11 13:54", "Price": 3.99, "Sizes": [ "Small", "Medium", "Large" ] }

更多关于JSON数据格式的说明参看JSON官方网站:/retype/zoom/f4f64fd1b14e852458fb572c?pn=5&x=0&y=1586&raww=14&rawh=15&o=png_6_0_0_213_608_16_17_893.25_1263.375&type=pic&aimh=15&md5sum=9947825c5cc6765ae336e9aa6fe51ad4&sign=ceff29df36&zoom=&png=2712-6841&jpg=0-0" target="_blank">

相关热词搜索:json在线解析 gson直接解析json数组

最新推荐成考报名

更多
1、“什么东西可以直接json解析”由中国招生考试网网友提供,版权所有,转载请注明出处。
2、欢迎参与中国招生考试网投稿,获积分奖励,兑换精美礼品。
3、"什么东西可以直接json解析" 地址:http://www.chinazhaokao.com/zhishi/672078.html,复制分享给你身边的朋友!
4、文章来源互联网,如有侵权,请及时联系我们,我们将在24小时内处理!

最新成考报名

成考报名排行榜