JSON对象的定义及其使用
json对象定义格式
var 变量名 = {
"key" : value ,
"key2" : “value” ,
"key3" : [] ,
"key4" : {},
"key5" : [{},{}]
}
通过json对象进行数据访问
json对象定义格式
var 变量名 = {
"key" : value ,
"key2" : “value” ,
"key3" : [] ,
"key4" : {},
"key5" : [{},{}]
}
通过变量名.属性名访问
比如要访问key1为
变量名.key1
如果为数组类型就继续往下点
如要访问key3的第一个元素
变量名.key3[0]
JSON中常用的两个方法
JSON 对象和字符串对象的互转
JSON.stringify( json ); 此方法可以把一个 json 对象转换成为 json 字符串
JSON.parse( jsonString ); 此方法可以把一个 json 字符串转换成为 json
var obj = {
"a" : 12,
"c" : "str"
};
var objStr = JSON.stringify(obj);
alert(objStr);
var jsonObj = JSON.parse(objStr);
alert(jsonObj);
JSON在JAVA中使用
我们要使用 json 和 java 中使用,我们需要使用到一个第三方的包。它就是 gson.jar
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串
转成一个 Java 对象,或者反过来
json 在 java 中的常见的三种情况。
1、java 对象和 json 的转换
对象转化为字符串
String personjson = gson.toJson(对象);
字符串转化为对象
Object obj = gson.fromJson(json, Object.class);
2、java 对象 list 集合和 json 的转换
3、map 对象和 json 的转换
package com.atguigu.gson;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class GsonTest {
static class Person {
private int age;
private String name;
public Person() {
}
public Person(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person [age=" + age + ", name=" + name + "]";
}
}
static class PersonType extends TypeToken<List<Person>> {
}
public static void main(String[] args) {
Gson gson = new Gson();
Person person = new Person(12, "123");
String personjson = gson.toJson(person);
System.out.println(personjson);
Person p = gson.fromJson(personjson, Person.class);
System.out.println(p);
System.out.println("------------------------------------------");
List<Person> list = new ArrayList<Person>();
for (int i = 0; i < 3; i++) {
list.add(new Person(10 * i, "name-" + i));
}
String jsonListString = gson.toJson(list);
System.out.println(jsonListString);
List<Person> ps = gson.fromJson(jsonListString, new TypeToken<List<Person>>() {
}.getType());
System.out.println(ps);
System.out.println("------------------------------------------");
Map<String, Person> mapPerson = new HashMap<String, GsonTest.Person>();
mapPerson.put("p1", new Person(1, "person-1"));
mapPerson.put("p2", new Person(2, "person-2"));
String jsonMapString = gson.toJson(mapPerson);
System.out.println(jsonMapString);
Map<String, Person> map = gson.fromJson(jsonMapString,
new TypeToken<HashMap<String, Person>>() {}.getType());
System.out.println(map);
}
}