Java JSON中的使用

Java 上最常用的JSON工具库

Gson

google 开源的工具类,也是目前功能最全的Json解析神器

FastJson

阿里巴巴开源,性能极其优秀

Jackson

Jackson 应用也是非常广泛, 著名的 Spring MVC的默认json解析器便是Jackson

JSON 对象

public class TestJsonObject
{
  public static void main(String[] args) {
    Map<String, Object> maps = Maps.newConcurrentMap();

		maps.put("username", "u1");
    maps.put("password", "p1");

		String jsonstring = FastJsonHelper.jsonEncode(maps);
		System.out.println(jsonstring);
  }
}

运行结果为

{"username":"u1", "password":"p1"}

形如以上打印结果,我们叫它为 json对象,它的结构如下

{key : value}

注意: 这里的value 可以是字符串,也可以是对象,也可以是数组,例如

{"user" : {"username": "u2"} }

JSON 数组

public class TestJsonArray {
	private static Map<String, Object> createMap(String value)
	{
		Map<String, Object> maps = Maps.newConcurrentMap();
		maps.put("username", value);
		return maps;
	}

	public static void main(String[] args) throws InterruptedException
	{

		List<Map<String, Object>> list = Lists.newArrayList();

		list.add(createMap("u1"));
		list.add(createMap("u2"));
		list.add(createMap("u3"));
		list.add(createMap("u4"));
		list.add(createMap("u5"));

		String jsonstring = FastJsonHelper.jsonEncode(list);
		System.out.println(jsonstring);
	}
}

运行结果为

[
  {"username":"u1"},
  {"username":"u2"},
  {"username":"u3"},
  {"username":"u4"},
  {"username":"u5"}
]

这种叫做json数组,它的一个重要特征是最外层是 [] 包起来的! 里面可以是对象,也可以是字符串,如

[
  "pangugle",
  "baidu",
  "qq"
]