XML与JSON(六) --- JSON

一、简介

        JavaScript Object Notation  JS对象简谱,是一种轻量级的数据交换格式。

二、对象格式

        一个对象,由一个大括号表示:

                括号中描述对象的属性,通过键值对来描述对象的属性

                格式:

                        键与值之间使用冒号链接,多个键值对之间使用逗号分隔;

                        键值对的键,应使用引号引住(通常Java解析时,键不使用引号会报错,而JS能正确解析);

                        键值对的值,可以是JS中的任意类型的数据。

        例:一本书

                书名

                简介

java:

class Book{
    private String name;
    private String info;
    get/set....
}
Book b = new Book();
b.setName = "xxx";
b.setInfo = "yyy";
...

js:

var b = new Book();
b.name = "xxx";
b.info = "yyy";

XML:

<book>
    <name>xxx</name>
    <info>yyy</info>
</book>

JSON:

{
    "name":"xxx",
    "info":"yyy"
}

数组格式:

        在JSON格式中可以与对象互相嵌套:[元素1,元素2...]

例如:

{
    "friend":["x","y","z",{
                "name":"aaa",
                "age":18
            }]
}

使用xstream:

package com.java.h.demo;

import com.thoughtworks.xstream.XStream;

import java.util.Objects;

/**
 * @author s
 * @version 1.0
 * @date 2022-02-19 13:59
 */
public class Demo5 {
    public static void main(String[] args) {
        Person p = new Person();
        p.setName("张三");
        p.setAge(18);
        // XStream使用
        // 1.创建XStream对象
        XStream x = new XStream();
        // 2.修改某个类型生成的节点(可选,默认包名.类名)
        x.alias("person",Person.class);
        // 3.传入对象,开始生成
        String xml = x.toXML(p);
        System.out.println(xml);
    }
    static class Person{
        private String name;
        private int age;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }

        public Person() {
        }

        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            Person person = (Person) o;
            return age == person.age && Objects.equals(name, person.name);
        }

        @Override
        public int hashCode() {
            return Objects.hash(name, age);
        }
    }
}

路漫漫其修远兮,吾将上下而求索!

猜你喜欢

转载自blog.csdn.net/weixin_38817361/article/details/123022074
今日推荐