1. Введение
Нотация объектов JavaScript Нотация объектов JS — это облегченный формат обмена данными.
2. Формат объекта
Объект, обозначенный фигурной скобкой:
Свойства объекта описываются в скобках, а свойства объекта описываются парами ключ-значение.
Формат:
Двоеточие используется для связи ключей и значений, а запятые используются для разделения нескольких пар ключ-значение;
Ключ пары ключ-значение должен быть заключен в кавычки (обычно при разборе Java, если ключ не использует кавычки, будет сообщено об ошибке, но JS может правильно его разобрать);
Значение пары ключ-значение может быть любым типом данных в JS.
Пример: книга
Заголовок книги
Введение
Джава:
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);
}
}
}