JAVA中操作JSON数据(alibaba-fastjson)、javascript中操作JSON数据

        //json数据格式:{"name":"tom","age":23}  key必须双引号引上,value如果是数字不用双引号
        //json类型的数组:[{"name":"tom","age":23}]
		
		//  \转移字符
		//json字符串(json文本)  备注:下面写的Json格式的数据"前面的\,意思是告诉编译器忽略掉它后面的"
		//json字符串是json对象的string形式,也就是string,但是符合json对象的格式
		//方法的看法:点出来的方法:parse(String text) : objtce     :后是返回的类型
		String string = "{\"name\":\"tom\",\"age\":23}";
		
		//parse() : object; 转对象,如果jsonobject接收需要强转
		Object object =  JSON.parse(string); 
		System.out.println(object); //{"age":23,"name":"tom"}
		
		//parseObject() : Map;  
		Map<String, Object> map = JSON.parseObject(string, Map.class);
		System.out.println(map);//{age=23, name=tom}
		System.out.println(map.get("name"));//tom
		System.out.println(map.get("age"));//23
		
		//parseArray() : list; string转list操作: 给前台传一个list,前台遍历list
		String string1 = "[{\"name\":\"tom\",\"age\":\"23\"}]";
		List<String> list = JSON.parseArray(string1,String.class);
		System.out.println(list);//[{"age":"23","name":"tom"}]
		System.out.println(list.get(0));//{"age":"23","name":"tom"}
		System.out.println(list.size());//1
		
		//jsonObject:json对象
		//jsonArray:json数组
		//parseObject() : jsonBean;  那就可以使用getXxx(..)来得到某key对应的value了
		User user = JSON.parseObject(string, User.class);
		System.out.println(user.getName());
		
		//jsonObject.parse();
		JSONObject jsonObject = new JSONObject();
		System.out.println(jsonObject.parse(string));//{"age":23,"name":"tom"}
		
		//数组类型的json转不了map
		//Map<String, String> map3 = JSON.parseObject(string1, Map.class);
		//System.out.println(map3);
		
		//parseArray();  参数必须是数组形式的json
		JSONArray jsonArray = JSON.parseArray(string1);
		System.out.println(jsonArray);//[{"age":"23","name":"tom"}]
		
		//toJSONString(); 将javabean转成json格式的json文本
		User user2 = new User("elen",24);
		String string2 = JSON.toJSONString(user2);
		System.out.println(string2);//{"age":24,"name":"elen"}


javaScript中的json:

JSON:javaScript对象表示法(javaScript Object Notation)。

JSON是存储和交换文本信息的语法。类似xml

JSON更小、更快、更易解析。

<html>
    <head>
        <title>json</title>
        <meta charset="utf-8">
    </head>
    <body>
        name:<span id="name"></span><br>
        age:<span id="age"></span>

        <script type="text/javascript">
        	//josnObject:josn对象
        	var jsonObject = {
        		"name" : "tom",
        		"age" : 27
        	};
        	document.getElementById("name").innerHTML = jsonObject.name;
        	document.getElementById("age").innerHTML = jsonObject.age;
        </script>
    </body>
</html>
JSON得值可以是:

1.数字(整数或浮点数)

2.字符串(在双引号中)

3.逻辑值(true或false)

4.数组(在方括号中)

5.对象(在花括号中)json对象在花括号中书写,可以包含多个键值对。

6.null

<html>
    <head>
        <title>json</title>
        <meta charset="utf-8">
    </head>
    <body>
        name:<span id="name"></span><br>
    
        <script type="text/javascript">
        	//josnArray:josn数组
        	var jsonArray = [
                {"firstname":"zhangsan","lastname":"lisi"},
                {"firstname":"wangerma","lastname":"zhaowu"}
            ];

            document.getElementById("name").innerHTML = jsonArray[0].firstname;

        </script>
    </body>
</html>

JSON文本转JSON对象:

<html>
    <head>
        <title>json</title>
        <meta charset="utf-8">
    </head>
    <body>
        name:<span id="name"></span><br>
    
        <script type="text/javascript">
        	//josnArray:josn
        	var jsonString = '{"jsonArray":[{"firstname":"tom","firstname":"jery"}]}';
            //var obj = eval("("+jsonString+")");   
            obj = JSON.parse(jsonString);
            document.getElementById("name").innerHTML = obj.jsonArray[0].firstname;

        </script>
    </body>
</html>

eval()函数,必须把文本包含在括号中,避免出错,eval("("+jsonString+")");

eval()函数使用的是javascript编译器,可编译执行任何javascript代码,这隐藏了一个潜在的安全问题。

json文本转json对象使用json解析器更安全,只会识别json文本,而不会编译,JSON.parse(jsonString);


菜鸟求纠错补充....



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值