json前后台使用

json前后台使用(gson)

liweitsky2013-04-23 18:246130

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);
});



回到顶部发表评论网友评论,共0 条

      当前已输入9个字符, 您还可以输入191个字符。
    • 1
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值