1. Introdução
JavaScript Object Notation A notação de objeto JS é um formato de troca de dados leve.
2. Formato do objeto
Um objeto, denotado por uma chave:
As propriedades do objeto são descritas entre parênteses e as propriedades do objeto são descritas por pares chave-valor
Formatar:
Dois pontos são usados para vincular chaves e valores, e vírgulas são usadas para separar vários pares de chave-valor;
A chave do par chave-valor deve ser colocada entre aspas (geralmente quando o Java analisa, se a chave não usar aspas, um erro será relatado, mas o JS pode analisar corretamente);
O valor do par chave-valor pode ser qualquer tipo de dado em JS.
Exemplo: um livro
título do livro
Introdução
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"
}
Formato da matriz:
Os objetos podem ser aninhados entre si no formato JSON: [elemento 1, elemento 2...]
Por exemplo:
{
"friend":["x","y","z",{
"name":"aaa",
"age":18
}]
}
Usar 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);
}
}
}