1、简单点用gson,生成Json字符串
1
2
3
4
5
6
7
8
9
|
Gson gson =
new
Gson();
List<Person> persons =
new
ArrayList<Person>();
for
(
int
i =
0
; i <
10
; i++) {
Person p =
new
Person();
p.setName(
"name"
+ i);
p.setAge(i *
5
);
persons.add(p);
}
String str = gson.toJson(persons);
|
2、gson的反序列化
1
|
Person person = gson.fromJson(str, Person.
class
);
|
转换成列表类型
1
2
3
4
5
6
|
List<Person> ps = gson.fromJson(str,
new
TypeToken<List<Person>>(){}.getType());
for
(
int
i =
0
; i < ps.size() ; i++)
{
Person p = ps.get(i);
System.out.println(p.toString());
}
|
Gson的基本使用就是这么多了
3、前台json使用注意事项
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式:
(1).一种为使用eval()函数。
(2). 使用Function对象来进行返回解析。
1
2
3
4
5
6
7
8
9
10
11
|
var
data=
"
{
root:
[
{name:'1',value:'0'},
{name:'6101',value:'北京市'},
{name:'6102',value:'天津市'},
{name:'6103',value:'上海市'},
{name:'6110',value:'商洛市'}
]
}"
;
|
1
|
var
dataObj=eval(
"("
+data+
")"
);
//转换为json对象
|
为什么要 eval这里要添加 “("("+data+")");//”呢?
原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语 句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始 和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:
alert(eval("{}"); // return undefined
alert(eval("({})");// return object[Object]
对于这种写法,在JS中,可以到处看到。
如: (function()) {}(); 做闭包操作时等。
4、注意对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。
1
2
3
4
5
6
7
|
$.each(dataObj.root,fucntion(idx,item){
if
(idx==0){
return
true
;
}
//输出每个root子对象的名称和值
alert(
"name:"
+item.name+
",value:"
+item.value);
});
|
上一篇:
系统日志错误处理记录
下一篇:
Js获取当前日期时间
回到顶部发表评论网友评论,共0 条