数据传输格式
Json
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
https://www.ibm.com/developerworks/cn/web/wa-lo-json/
和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。
Boolean 类型表示为 true
或 false
。此外,JavaScript 中的 null 被表示为null
,注意,true
、false
和null以及数字
都没有双引号,否则将被视为一个 String 。
JSON 还可以表示一个数组对象,使用 []
包含所有元素,每个元素用逗号分隔,元素可以是任意的 Value,例如,以下数组包含了一个 String,Number,Boolean 和一个 null;
Object 对象在 JSON 中是用 {}
包含一系列无序的 Key-Value 键值对表示的,实际上此处的 Object 相当于 Java 中的Map<String, Object>
,而不是 Java 的 Class 。注意 Key 只能用 String 表示。
其中 Value 也可以是另一个 Object 或者数组
json = eval( "(" + json_string + ")" );
按照道理来说,如果json_string已经是一个数组或者对象,就不用eval成对象
json_string:用方括号[] 的是数组,而{}的是对象,你图片中[{'abc':123}],这表示的是有一个json对象的数组。
它支持两种类型的数据结构:名称/值对集合(如对象)和有序数值列表(如数组)。下面的列表详细说明了JSON支持的数据元素:
- Objects(对象):以大括号( {})开始并结束的对象。
- Object members(对象成员):由以冒号(:)分隔的字符串和值组成的元素。成员之间用逗号(,)隔开。
- Arrays(数组):数据用大括号定义。也就是说,它们以大括号({})开始并结束。数组由值构成,这些值位于大括号之中,不同值之间以逗号隔开。
- Values(值):单独的值可能为字符串、数字、对象、或一个文字值,如真、假和零。字符串值位于双引号中,可能包含Unicode字符和反斜扛或转义字符。字符是一个单独的字符串。
json:存在json数组和json实体
json实体:{键值对}
json数组:[{},{},{}] 其中的对象也可以是数组,即[[ ],[ ],[ ]]
eval:
var json对象=eval('('json数据')');
大括号括起来的内容被eval()执行后返回的是一个JSON对象,该对象是一个数组(数组其实也是对象)
JS中如何进行解析呢??
假设上面返回的内容放入一个 content 的变量中,那么可以使用如下方法获取对象
var json = eval( '(' + content + ')' );注意这里两边的括号不可以去掉,因为在JS中每个方法都可以作为一个类来生成对象,这里就是用简易的方式来生成json对象。
功能点: eval可以将字符串生成语句执行
function output(a,b)
{
var tmpa,tmpb;
tmpa=eval("document.all."+a+".value");
tmpb=eval("document.all."+b+".value");
document.write(tmpa+tmpb);
}
output('input1','input2');
这样javascript就会先取出a,b的值,然后和前面的document.all.以及后面的.value组合运行,于是就可以
顺利取出input1和input2的值,我们的目的达到了。
如果不使用eval,你执行的时候就会提示错误“document.all.a不是对象”以及“document.all.b不是对象”。原来 javascript把a和b当成对象名称了,怎样能让javascript把a里面的值作为对象名称呢?这时候就要用eval了。
function output(a,b)
{
var tmpa,tmpb;
tmpa=eval("document.all."+a+".value");
tmpb=eval("document.all."+b+".value");
document.write(tmpa+tmpb);
}
output('input1','input2');
这样javascript就会先取出a,b的值,然后和前面的document.all.以及后面的.value组合运行,于是就可以
顺利取出input1和input2的值,我们的目的达到了。
Gson
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
http://www.cnblogs.com/chenlhuaf/archive/2011/05/01/gson_test.html