共计 4656 个字符,预计需要花费 12 分钟才能阅读完成。
只要你的风格是适应客观规律的,那你以后会越来越好,做事情会越来越顺利
—— 24.8.26
一、JS 创建对象
语法
方式 1 new Object()
方式 2 {属性名:属性值,… …,函数名:function(){}}
方式 3 Object.create()
Document
二、JSON 格式
一个特定的字符串语法结构,JSON 格式的字符串, 在 前后端都可以很方便的和对象之间进行转换
说明:
JSON 的 语法:
var personStr = '{" 属性名 ":" 属性值 "}'
var obj=”{‘ 属性名 ’:’ 属性值 ’,’ 属性名 ’:{‘ 属性名 ’:’ 属性值 ’}’, 属性名 ’:{‘ 值 1 ′,’ 值 2 ′,’ 值 3 ’}”
JSON 字符串一般用于传递数据, 所以字符串中的函数就显得没有意义, 在此不做研究
通过 JSON.parse()方法可以将一个 JSON 串转换成对象
通过 JSON.stringify()方法可以将一个对象转换成一个 JSON 格式的字符串
JSON 在客户端的使用
代码:
Document
JSON 在服务端的使用
代码
Dog 类
package JSON;
import java.util.Objects;
public class Dog {
private String name;
@Override
public boolean equals(Object o) {if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Dog dog = (Dog) o;
return Objects.equals(name, dog.name);
}
@Override
public int hashCode() {return Objects.hashCode(name);
}
public Dog() {}
public Dog(String name) {this.name = name;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
}
Person 类
package JSON;
import java.util.Objects;
public class Person {
private String name;
private Integer age;
private Dog dog;
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 Objects.equals(name, person.name) && Objects.equals(age, person.age) && Objects.equals(dog, person.dog);
}
@Override
public int hashCode() {return Objects.hash(name, age, dog);
}
public Person(String name, Integer age, Dog dog) {
this.name = name;
this.age = age;
this.dog = dog;
}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public Integer getAge() {return age;}
public void setAge(Integer age) {this.age = age;}
public Dog getDog() {return dog;}
public void setDog(Dog dog) {this.dog = dog;}
}
测试类
package TestJson;
import JSON.Dog;
import JSON.Person;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Test;
public class test {
// 字符串转对象
@Test
public void testWriteJson() throws JsonProcessingException {
// 实例化 Person 对象,将 Person 对象转换为 JSON 串
Dog dog = new Dog("初一");
Person person = new Person("张三",13,dog);
// 将 Person 对象转换成一个字符串 Gson jackson Fastjson 都是转换工具
ObjectMapper mapper = new ObjectMapper();
String personStr = mapper.writeValueAsString(person);
System.out.println(personStr);
}
// 对象转字符串
@Test
public void testReadJson() throws JsonProcessingException {String personStr = "{"name":" 张三 ","age":13,"dog":{"name":" 初一 "}}";
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(personStr, Person.class);
System.out.println(person);
}
}
三、JSON 和 Map、List、Array 之间的转换
1.map 转 JSON 对象
// map 转 JSON 对象
@Test
public void testMapToJason() throws JsonProcessingException {Map data = new HashMap();
data.put("a","valuea");
data.put("b","valueb");
ObjectMapper mapper = new ObjectMapper();
String s = mapper.writeValueAsString(data);
System.out.println(s);
}
2.List 转 JSON 对象
// List 转 JSON 对象
@Test
public void testListToJson() throws JsonProcessingException {List data = new ArrayList();
data.add("苦");
data.add("难");
data.add("是");
data.add("花");
data.add("开");
data.add("的");
data.add("伏");
data.add("笔");
ObjectMapper mapper = new ObjectMapper();
String s = mapper.writeValueAsString(data);
System.out.println(s);
}
3.List 转 Array 数组
// Array 转 JSON 对象
@Test
public void testArrayToJson() throws JsonProcessingException {String[] data = {"苦","难","是","花","开","的","伏","笔"};
ObjectMapper mapper = new ObjectMapper();
String s = mapper.writeValueAsString(data);
System.out.println(s);
}
同理,元素也可以是对象
原文地址: JavaWeb JavaScript 4.JS 的对象和 JSON
正文完