当前位置: 主页 > JAVA语言

java json 转换为对象-(知识点)JSON对象的转换前端用法

发布时间:2023-06-11 07:06   浏览次数:次   作者:佚名

一、本质

JSON是一种数据交换格式。

常说的JSON格式的字符串 ==> 发送和接收时都只是一个字符串,它遵循JSON这种格式。

二、JSON的两种基本结构 对象结构

在JSON中表示为 { } 括起来的内容。k-v的键值对结构java json 转换为对象,value的数据类型可以是数字、字符串、布尔值、null、数组、对象六种类型。

{"key1":"value1","key2":"value2"}

数组结构

在JSON中表示为 [ ] 括起来的内容。数据类型可以是数字、字符串、布尔值、null、数组、对象六种类型。

["java",30,true,null,...]

复杂结构:对象和数组的组合形式

[{"key1":"value1"},{"key2":"value2"},[1,2,3]...]

三、语法注意事项 属性名必须使用双引号包裹。字符串类型必须使用双引号。JSON最外层必须是对象或者数组格式。不能使用undefined或者函数作为JSON的值。 四、JSON对象的转换

前端用法

JSON转为JS对象:JSON.parse(字符串);

var obj=JSON.parse('{"a":"hello","b":"world"}') //{a:'hello',b:'world'}

JS对象转为JSON:JSON.stringfy(JSON);

var json = JSON.stringfy({a:'hello',b:'world'}); //'{"a":"hello","b":"world"}'

后端用法:

String 转为JSON:JSON.parseObject(String)

String s ="[\"1578999474151800834\",\"238\"]";
String json = "{\"age\":18,\"id\":\"12345\",\"name\":\"mark\"}";
JSONObject jsonObject = JSON.parseObject(json);
System.out.println("jsonObject="+jsonObject); 
// jsonObject={"name":"mark","id":"12345","age":18}

取出Json中的数组:JSONObject.getJSONArray("key")

String jsonArray = "{\"age\":18,\"id\":\"12345\",\"name\":\"mark\",
\"grade\":[102,115,120,90,80]}";
JSONArray grade = JSON.parseObject(jsonArray).getJSONArray("grade");
System.out.println("grade="+grade);
// grade=[102,115,120,90,80]

将一个json转换JavaBean:JSON.parseObject(jsonString, Student.class)

1、JavaBean
    Student student = JSON.parseObject(jsonString, Student.class);
2、List
    Lsit listPerson = JSON.parseArray(jsonString, Student.class);
3、Map
    Map studentMap = JSON.parseObject(jsonString, 
    TypeReference>(){});
4、List>
     List> studentListMap = 
    JSON.parseObject(jsonString,new Typereference>>(){});
 String jsonString = "[{\"1\":{\"age\":18,\"id\":\"12345\",\"name\":\"mark\"},
    \"2\":{\"age\":19,\"id\":\"11111\",\"name\":\"markt\"}}]";
Map studentMap = JSON.parseObject(jsonString, 
    new TypeReference>(){});
        System.out.println(studentMap);
        System.out.println(studentMap.get("1"));
        System.out.println(studentMap.get("2"));

Map是一个对象java json 转换为对象,JSON外面需要一个大括号。多个

String jsonString = "[{\"1\":{\"age\":18,\"id\":\"12345\",\"name\":\"mark\"},
    \"2\":{\"age\":19,\"id\":\"11111\",\"name\":\"markt\"}}]";
Map studentMap = JSON.parseObject(jsonString, 
    new TypeReference>(){});
        System.out.println(studentMap);
// {"1":{"name":"mark","id":"12345","age":18},"2":{"name":"markt","id":"11111","age":19}}
        System.out.println(studentMap.get("1"));
// {"name":"mark","id":"12345","age":18}
        System.out.println(studentMap.get("2"));
// {"name":"markt","id":"11111","age":19}