JS-json
JSON
JSON(JavaScript Object Notation,js对象简谱)
一个特定的字符串语法结构
JSON格式的字符串,在前后端都可以很方便的和对象之间进行转换
<script>
// json中,属性值和属性名都需要用双引号包好,数字可以不做处理
// 属性值可以是数组,对象,对象数组
// var personStr ='{"属性名":"属性值","属性名":"属性值"}'
// 在json中主要使用属性传递数据,不讨论方法的传递
//创建一个json格式的字符串
var personStr =
'{"name":"张三","age":10,"dog":{"dname":"小花"},"loveSingers" :["张晓明","王晓东","李小黑"],"friends":[{"fname":"赵四儿"},{"fname":"玉田"},{"fname":"王小蒙"}] }';
var person = JSON.parse(personStr);
console.log(personStr);
console.log(person);
//可以通过逐层打点的方式,访问每一个属性
//也可以将对象转换为json串
var personstr1 = JSON.stringify(person);
console.log(personstr1);
</script>
在后端,同样可使用jackson工具对json串进行转换操作
我们需要使用到Jackson来对json串进行转换
Central Repository: com/fasterxml/jackson/core (maven.org)
@Test
public void test() {
ObjectMapper objectMapper = new ObjectMapper();
String personStr = objectMapper.writeValueAsString(person);//将 person对象转成json串
ObjectMapper objectMapper1 = new ObjectMapper();
Person person = objectMapper1.readValue(PersonStr, Person.class);//将personStr字符串转成Person类的对象person
}
Map,List,数组的JSON串
@Test
public void test1() throws JsonProcessingException {
//map集合转为JSON串
Map map = new HashMap();
map.put("a", "valuea");
map.put("b", "valueb");
map.put("c", "valuec");
ObjectMapper objectMapper = new ObjectMapper();
System.out.println(objectMapper.writeValueAsString(map));//{"a":"valuea","b":"valueb","c":"valuec"}
}
@Test
public void test2() throws JsonProcessingException {
//List集合转为JSON串
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
ObjectMapper objectMapper = new ObjectMapper();
System.out.println(objectMapper.writeValueAsString(list));//["a","b","c"]
}
@Test
public void test3() throws JsonProcessingException {
String[] data = {"a", "b", "c"};
ObjectMapper objectMapper = new ObjectMapper();
System.out.println(objectMapper.writeValueAsString(data));//["a","b","c"]
}