json

定义

//基本定义格式
    var person = {name: "张三", 'age': 23, "gender": "man"};
    
    
    //嵌套格式
    var persons = {
        person: [{name: "张三", 'age': 23, "gender": "man"}, {name: "张三", 'age': 23, "gender": "man"}
            , {name: "张三", 'age': 23, "gender": "man"}]
    }

    var pon = [{name: "张三", 'age': 23, "gender": "man"}, {name: "张三", 'age': 23, "gender": "man"}, {
        name: "张三",
        'age': 23,
        "gender": "man"
    }]

值的获取

let name=person.name;
    let name=person["name"];
    

获取数组中的值

let name=persons.person[2].name;
 alert(pon[2].name);
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    <title>图书管理系统登录界面</title>
    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <script src="js/jquery-3.3.1.min.js"></script>
</head>
<body>

<input type="button" value="发送异步请求" onclick="fun()">

<script>
    //基本定义格式
    var person = {name: "张三", 'age': 23, "gender": "man"};



    //嵌套格式
    var persons = {
        person: [{name: "张三", 'age': 23, "gender": "man"}, {name: "李四", 'age': 23, "gender": "man"}
            , {name: "张三", 'age': 23, "gender": "man"}]
    }

    let name=persons.person[2].name;
    alert(name);


    var pon = [{name: "张三", 'age': 23, "gender": "man"}, {name: "李四", 'age': 23, "gender": "man"}, {
        name: "张三",
        'age': 23,
        "gender": "man"
    }]

    alert(pon[2].name);
</script>


<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src="js/bootstrap.min.js"></script>

</body>
</html>



遍历

  //获取person对象中的所有值
   for(let key in person)
       alert(key+":"+person[key]);
 //获取数组中的所有值
    for(let i=0;i<pon.length;i++)
    {
        let p=pon[i];
        for(let key in p)
            alert(key+":"+p[key])
    }

json和Java的相互转换

Java对象转换成json

@Test
    public void test() throws IOException {
        Person p=new Person("张三",23,"男");

        //创建jackson的核心对象,ObjectMapper
        ObjectMapper mapper=new ObjectMapper();
        //转换
        String json = mapper.writeValueAsString(p);
        System.out.println(json);//{"name":"张三","age":23,"gender":"男"}

        //将数据写到文件中
        mapper.writeValue(new File("d://a.txt"),p);
        //将数据关联到writer中
        mapper.writeValue(new FileWriter("d://b.txt"),p);
    }

注解

//@JsonIgnore//忽略该属性,在转换成json字符串的时候,就不会转换该属性
    @JsonFormat(pattern = "yyyy-mm-dd")//将属性值格式化
    private Date birthday;

复杂Java对象转换

List

public void test() throws IOException {
        Person p1=new Person("张三",23,"男",new Date());
        Person p2=new Person("张三",23,"男",new Date());
        Person p3=new Person("张三",23,"男",new Date());

        List<Person> ps=new ArrayList<>();
        ps.add(p1);
        ps.add(p2);
        ps.add(p3);

        //创建jackson的核心对象,ObjectMapper
        ObjectMapper mapper=new ObjectMapper();
        //转换
        String json = mapper.writeValueAsString(ps);
        System.out.println(json);//[{"name":"张三","age":23,"gender":"男","birthday":"2020-10-13"},{"name":"张三","age":23,"gender":"男","birthday":"2020-10-13"},{"name":"张三","age":23,"gender":"男","birthday":"2020-10-13"}]


    }

Map

 @Test
    public void test() throws IOException {
        Map<String,Object> map=new HashMap<>();
        map.put("name","张三");
        map.put("age",23);
        map.put("gender","man");

        //创建jackson的核心对象,ObjectMapper
        ObjectMapper mapper=new ObjectMapper();
        //转换
        String json = mapper.writeValueAsString(map);
        System.out.println(json);//{"gender":"man","name":"张三","age":23}


    }

json字符串转换为Java对象

@Test
    public void test() throws IOException {
        String json="{\"name\":\"张三\",\"age\":23,\"gender\":\"男\"}";
        ObjectMapper mapper=new ObjectMapper();
        Person person=mapper.readValue(json,Person.class);

        System.out.println(person);


    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值