json转对象的原理是什么?json字符串转对象怎么做?

Json数据转换是开发中经常遇到的,json是一种轻量级的数据交换格式,它转换的数据能够方便大家去阅读以及理解,不过每个数据转换都有其原理,那json转对象的原理是什么?下面来我们就来给大家讲解一下。

json转对象的原理.jpg

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工具网。

推荐阅读:

Java代码怎么在手机上运行?手机上如何写java代码?

java开发工具哪个好用?java开发好用工具分享

springcloud组件原理和作用是什么?springcloud组件原理和作用详解