Json数据转换是开发中经常遇到的,json是一种轻量级的数据交换格式,它转换的数据能够方便大家去阅读以及理解,不过每个数据转换都有其原理,那json转对象的原理是什么?下面来我们就来给大家讲解一下。
1.对象转化JSON时,其实调用的是对象身上的getXXXX()方法.
获取所有的getLyj()方法-----之后去掉get-----首字母小写---lyj属性.
json串中的key就是该属性.value就是属性的值. lyj:"xxxxx"
2.JSON转化为对象原理说明
1).定义转化对象的类型(ItemDesc.class)
2).利用反射机制实例化对象 class.forName(class) 现在的属性都为null
3).将json串解析
object key:value
array value1,value2
4).根据json串中的属性的itemId,之后调用对象的(set+首字母大写)setItemId方法实现赋值
/ @Test public void test03() throws JsonProcessingException { ItemDesc itemDesc = new ItemDesc(); itemDesc.setItemId(100 L) .setItemDesc("测试数据") .setCreated(new Date()) .setUpdated(itemDesc.getCreated()); //思考:对象转化为JSON时,底层实现如何. String json = OBJECTMAPPER.writeValueAsString(itemDesc); System.out.println(json); //{id:1,name:"xxxx"} OBJECTMAPPER.readValue(json, ItemDesc.class); }
json字符串转对象怎么做?
例如:
JSON字符串:
var str1 = '{ "name": "cxh", "sex": "man" }';
JSON对象:
var str2 = { "name": "cxh", "sex": "man" };
一、JSON字符串转换为JSON对象
要使用上面的str1,必须使用下面的方法先转化为JSON对象:
//由JSON字符串转换为JSON对象 var obj = eval('(' + str + ')');
或者
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
然后,就可以这样读取:
Alert(obj.name); Alert(obj.sex);
特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。
二、可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。
例如:
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
或者
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符 alert(last);
注意:
上面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。
这样我们就能够实现json字符串转对象的相关操作了,其实json字符串不仅能够转对象,还能转集合、数组等,这些都需要大家一一去攻破掌握!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。
推荐阅读: