json生成和解析

[size=large][color=red][b]json生成和解析[/b][/color][/size]

package fastjson;

import java.util.*;

import com.alibaba.fastjson.JSON;
class User{
private String name;
private int age;
public User(){
}
public User(String name,int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Group{
private String id;
private String name;
private List<User> users = new ArrayList<User>();
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}
public class Main {
public static void main(String[] args) {
Group group = new Group();
group.setId("01");
group.setName("team gourp");
List<User> users = new ArrayList<User>();
users.add(new User("tomcat",12));
users.add(new User("jerry",12));
group.setUsers(users);
//转成json字符串
String jsonString = JSON.toJSONString(group);
System.out.println(jsonString);
//将json字符串转成对象
Group g = JSON.parseObject(jsonString, Group.class);
System.out.println(g.getUsers().get(0).getName());
}
}


控制台打印如下:
{"id":"01","name":"team gourp","users":[{"age":12,"name":"tomcat"},{"age":12,"name":"jerry"}]}
tomcat


上面用到的转JSON的类是来自阿里巴巴的牛人写的fastjson,我把jar包和源码都贴到下面,有想用的自己下载下来看看。

1、JS自带方法eval()解析JSON字符串

将上面输出的JSON字符串放入eval()中解析:

<html>
<head>
<script type="text/javascript">
var obj = eval("("+'{"id":"01","name":"team gourp","users":[{"age":12,"name":"tomcat"},{"age":12,"name":"jerry"}]}'+")");
alert(obj.id+","+obj.users[0].name+","+obj.users[1].name);
</script>
</head>
</html>


页面弹出对话框,显示如下:

01,tomcat,jerry


[b][color=red]这里注意下不能直接把json字符串放到eval()的括号里面,由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。[/color][/b]

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语 句(statement)来执行。


[b][color=red]出了上面的eval()方法解析json字符串,下面这个也同样奏效[/color][/b]

var json='{"name":"CJ","age":18}';

data =(new Function("","return "+json))();


大家可以试试。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值