当前位置: 代码迷 >> JavaScript >> json-lib解析JSON例证
  详细解决方案

json-lib解析JSON例证

热度:185   发布时间:2013-02-15 15:46:56.0
json-lib解析JSON例子

首先说明一下,json-lib相较于Jackson以及GSON,性能是最低的,并且长期没有更新,所以不推荐使用。

1.Maven Dependency

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>org.fool.json</groupId>
	<artifactId>json</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>JSON</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>net.sf.json-lib</groupId>
			<artifactId>json-lib</artifactId>
			<version>2.4</version>
			<classifier>jdk15</classifier>
		</dependency>

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.1</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

先来看一个简单的DEMO

JsonlibDemo.java

package org.fool.json.jsonlib;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JsonlibDemo
{
	public static void main(String[] args)
	{
		String jsonContent = "{'hello':'world', 'hero':'heroine'}";

		JSONObject jsonObject = JSONObject.fromObject(jsonContent);

		String str1 = jsonObject.getString("hello");
		String str2 = jsonObject.getString("hero");

		System.out.println(str1);
		System.out.println(str2);

		System.out.println("--------------------");

		jsonContent = "[{'hello': 333, 'abc': false, 'xyz': {'a': 1, 'b': 'ab'}}, "
				+ "{'hello': 555, 'abc': true, 'xyz': {'a': 3, 'b': 'ba'}}]";

		JSONArray jsonArray = JSONArray.fromObject(jsonContent);

		for (Object object : jsonArray)
		{
			JSONObject jsonObject2 = JSONObject.fromObject(object);

			int value1 = jsonObject2.getInt("hello");
			boolean value2 = jsonObject2.getBoolean("abc");
			// String value33 = jsonObject2.getString("xyz");

			JSONObject jsonObject3 = jsonObject2.getJSONObject("xyz");

			int value3 = jsonObject3.getInt("a");
			String value4 = jsonObject3.getString("b");

			System.out.println(value1);
			System.out.println(value2);
			System.out.println(value3);
			System.out.println(value4);
		}
	}
}

?

2.POJO

Person.java

package org.fool.json.jsonlib;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

public class Person
{
	private String username;

	private String password;

	private int age;

	private String address;

	private List<String> list = new ArrayList<>();

	public String getUsername()
	{
		return username;
	}

	public void setUsername(String username)
	{
		this.username = username;
	}

	public String getPassword()
	{
		return password;
	}

	public void setPassword(String password)
	{
		this.password = password;
	}

	public int getAge()
	{
		return age;
	}

	public void setAge(int age)
	{
		this.age = age;
	}

	public String getAddress()
	{
		return address;
	}

	public void setAddress(String address)
	{
		this.address = address;
	}

	public List<String> getList()
	{
		return list;
	}

	public void setList(List<String> list)
	{
		this.list = list;
	}

	@Override
	public String toString()
	{
		return ToStringBuilder.reflectionToString(this,
				ToStringStyle.SHORT_PREFIX_STYLE);
	}
}

?

3.JUnit Test

JsonlibTest.java

package org.fool.json.jsonlib;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.junit.Before;
import org.junit.Test;

public class JsonlibTest
{
	private JSONObject jsonObject = null;
	private JSONArray jsonArray = null;
	private Person person = null;

	@Before
	public void setUp() throws Exception
	{
		person = new Person();

		person.setUsername("zhangsan");
		person.setPassword("123456");
		person.setAddress("beijing");
		person.setAge(30);

		person.getList().add("hello");
		person.getList().add("world");
		person.getList().add("Hero");
		person.getList().add("Heroine");
	}
......
}

?

testEntity2Json

...    
    @Test
	public void testEntity2Json()
	{
		jsonObject = JSONObject.fromObject(person);
		System.out.println(jsonObject);
	}
...

?result

{"address":"beijing","age":30,"list":["hello","world","Hero","Heroine"],"password":"123456","username":"zhangsan"}

?

testArray2Json

...
    @Test
	public void testArray2Json()
	{
		Person[] persons = {person, person};
		// int[] i = { 8, 8, 5, 6, 7 };
		jsonArray = JSONArray.fromObject(persons);
		System.out.println(jsonArray);
	}
...

?result

[{"address":"beijing","age":30,"list":["hello","world","Hero","Heroine"],"password":"123456","username":"zhangsan"},{"address":"beijing","age":30,"list":["hello","world","Hero","Heroine"],"password":"123456","username":"zhangsan"}]

?

testList2Json

...
    @Test
	public void testList2Json()
	{
		List<Person> list = new ArrayList<>();
		list.add(person);
		list.add(person);

		jsonArray = JSONArray.fromObject(list);
		System.out.println(jsonArray);
	}
...

?result

[{"address":"beijing","age":30,"list":["hello","world","Hero","Heroine"],"password":"123456","username":"zhangsan"},{"address":"beijing","age":30,"list":["hello","world","Hero","Heroine"],"password":"123456","username":"zhangsan"}]

?

testMap2Json

...
    @Test
	public void testMap2Json()
	{
		Map<String, Person> map = new HashMap<>();
		map.put("001", person);
		map.put("002", person);

		jsonObject = JSONObject.fromObject(map);
		System.out.println(jsonObject);
	}
...

?result

{"001":{"address":"beijing","age":30,"list":["hello","world","Hero","Heroine"],"password":"123456","username":"zhangsan"},"002":{"address":"beijing","age":30,"list":["hello","world","Hero","Heroine"],"password":"123456","username":"zhangsan"}}

?

?

?

  相关解决方案