json简介
JSON 全名是:Javascrip object notation ,是一种轻量级的数据交换语言,以文字为基础,易于让人阅读。
json用于描述数据结构,主要有以下形式存在。
1、对象(object)
一个对象以"{"开始,并以“}”退出,其中对象大括号里面可以包含一系列非排序的名称/值对(相当于map里面的键值对),名称/值对之间用逗号,分开。
2、名称/值(collection)
名称和值之间使用冒号:来隔开,一般形式{name :value}
其中name 只能是一个字符串,而value可以是一个字符串,一个数值,一个对象,一个布尔值,一个值的有串行表,或者一个null值。
3、值的有串行表(Array)
一个或者多个值用逗号,分区后,使用中括号[]括起来,就形成如下列表,[collection,collection]
4、字符串:
以双引号""括起来的一串字符。
5、数值:
一系列0-9组成的数字组合,可以为负数或者小数,还可以用用e表示的指数形式,如-13.25用-1.325e+1
6、布尔值:
ture或者false
json数据在Java中的解析
如下是调用google公司的Gson库来解析json数据。
1、导入Gson的jar包,下载
http://code.google.com/p/google-gson/
2、编写测试demo
1、Person类
public class Person {
private String name;
private int age;
public String toString()
{
return name + ":" +age;
}
}
2、测试类
public class Test {
public static void main(String[] args) {
objectToJsonString();
jsonStringToObject();
}
private static void jsonStringToObject() {
Gson gson = new Gson();
/* 转换成一个Java对象 */
// String str = "{\"name\":\"name0\",\"age\":0}";
// Person person = gson.fromJson(str, Person.class);
// System.out.println("person---\n" + person.toString());
/* 转换成多个个Java对象 */
String str = "[{\"name\":\"name0\",\"age\":0},{\"name\":\"name1\",\"age\":1}]";
List<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>() {
}.getType());
for (int i = 0; i < ps.size(); i++) {
Person p = ps.get(i);
System.out.println("json form sting to object --->"+p.toString());
}
}
private static void objectToJsonString() {
Gson gson = new Gson();
/* 一个Java对象转换成Json格式字符串 */
Person p = new Person();
String str = gson.toJson(p);
/* 多个Java对象转换成Json格式字符串 */
// List<Person> persons = new ArrayList<Person>();
// for (int i = 0; i < 10; i++) {
// Person p = new Person();
// p.setName("name" + i);
// p.setAge(i * 5);
// persons.add(p);
// }
// String str = gson.toJson(persons);
System.out.println("json form string--->" + str);
}
}
参考网址: