`

json-lib解析JSON例子

    博客分类:
  • 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"}}

 

 

 

分享到:
评论

相关推荐

    json-lib-2.4-jdk15.jar所需全部JAR包

    这个例子展示了如何从JSON数据中提取HTML内容,然后使用`jsoup`解析这个HTML,提取出有用的信息。在实际项目中,开发者可能会根据API的具体结构和需求进行更复杂的操作。理解如何正确使用这些库和处理数据格式是Java...

    基于json-lib.jar包 JSONObject-Java常用的四种用法

    `json-lib.jar`是一个流行的Java库,用于处理JSON格式的数据,它提供了丰富的API来操作JSON对象。本文将深入探讨基于`json-lib.jar`包中的`JSONObject`类的四种常用用法。 1. **创建JSONObject** 创建`JSONObject`...

    json-lib-2.4-jdk15

    在描述中提到的"内附实际例子"意味着这个压缩包可能包含了一个示例项目或者代码片段,演示了如何使用`json-lib`进行JSON转换。这通常是开发者学习新库的好资源,因为它们展示了实际应用中的用法,帮助理解API的工作...

    json-lib含使用说明

    对于解析JSON,json-lib提供了将JSON字符串反序列化为Java对象的方法。假设我们有一个如下的JSON字符串: ```json { "name": "李四", "age": 28 } ``` 我们可以使用以下代码将其转换为User对象: ```java ...

    json-lib全部相关jar及例子

    在Java开发中,json-lib提供了多种JSON解析器,可以将Java对象转换为JSON字符串,反之亦然。这对于在服务器端处理HTTP请求或响应时非常有用,因为JSON是一种轻量、易于理解和解析的格式。例如,你可以使用json-lib将...

    JSON-LIB快速入门(转)

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。JSON-LIB是一个Java库,用于将Java对象转换为JSON格式,反之亦然。这篇文章将引导您快速入门JSON-...

    使用Gson和Json-lib去解析json和组装Json数据例子

    3. **解析JSON字符串到Java对象** 反之,若要将JSON字符串转换回Java对象,同样简单: ```java User user = gson.fromJson(json, User.class); ``` **二、Json-lib库** Json-lib是另一个常用的Java JSON处理库...

    json-lib(所有依赖jar).zip

    2. **JSON到对象的反序列化**:反之,`json-lib`也能将JSON字符串解析成对应的Java对象,这在接收网络请求或读取JSON格式的文件时非常实用。 3. **XML与JSON的互转**:`json-lib`还提供了XML和JSON之间的转换功能,...

    《JSON-lib框架,转换JSON、XML不再困难》学习笔记

    7. 示例代码:笔记中可能包含实际操作的例子,演示如何使用JSON-lib进行对象和字符串之间的转换,以及XML和JSON之间的转换。 8. 异常处理:在实际使用中,可能会遇到如数据不匹配、格式错误等问题,学习笔记可能会...

    json-lib-2.4-jdk15.jar所需全部JAR包.zip

    1. **Jackson或Gson**: 这些是其他流行的JSON库,可能会被`json-lib`用作底层实现,特别是进行复杂JSON解析和生成时。 2. **Commons Lang**: Apache Commons Lang提供了一系列实用工具类,可能被`json-lib`用于字符...

    json-lib 2.4 整合包

    例如,以下是一个简单的使用json-lib将Java对象转换为JSON字符串的例子: ```java import net.sf.json.JSONObject; public class Main { public static void main(String[] args) { // 创建一个Java对象 Person...

    springmvc-json-lib.rar

    在这个例子中,`@RequestBody`注解将请求体中的JSON转换为User对象,`@ResponseBody`则将控制器返回的User对象转换为JSON响应。 此外,我们还可以自定义JSON序列化和反序列化的规则,例如忽略某些字段、自定义日期...

    json-lib-2.4-jdk15-相关支持依赖文件.rar

    通过这些例子,开发者可以快速理解如何将JSON字符串转化为Java对象,或者将Java对象转化为JSON字符串。 使用`json-lib-2.4-jdk15`时,开发人员可以创建`JSONArray`和`JSONObject`来表示JSON数据结构,使用`from...

    使用json-lib进行Java和JSON之间的转换

    通过阅读博客“使用json-lib进行Java和JSON之间的转换”,你可以更深入地了解json-lib的具体使用方法,并结合实际例子来实践,从而提升你的Java和JSON处理能力。同时,如果项目允许,考虑尝试更新的库可能会带来更好...

    一个使用JSON-lib和json2.js的示例

    json2.js库解决了这个问题,它提供了parse()方法用于解析JSON字符串到JavaScript对象,以及stringify()方法用于将JavaScript对象转换成JSON字符串。 在上述的“一个使用JSON-lib和json2.js的示例”中,我们可以假设...

    json2.4相关依赖jar包json-lib-2.4-jdk15.jar/ezmorph-1.0.6.jar 等6个jar包

    当你的项目中包含JSON相关的操作,例如从服务器获取JSON响应,解析JSON数据,或者将Java对象转换成JSON发送出去,这些jar包就成为了必不可少的依赖。 具体使用时,例如使用`json-lib`,你可以创建一个`JSONObject`...

    json-lib net.sf.ezmorph.bean.MorphDynaBean cannot be cast to xxx

    它提供了多种方式来将JSON与Java对象相互转换,包括将Java对象转换为JSON字符串,以及将JSON文本解析为Java对象。ezmorph模块是json-lib的一部分,提供了对象的动态变形功能,用于方便地将一种Java对象转换为另一种...

    Java 使用json-lib处理JSON详解及实例代码

    在Java开发中,处理JSON数据是一项常见的任务,而json-lib是一个流行且实用的库,用于在Java中解析和操作JSON(JavaScript Object Notation)数据。本文将深入介绍如何使用json-lib进行JSON数据的处理,并提供相关...

    json转换需要依赖的jar包

    `json-lib`是一个Java库,它提供了一套API来解析、生成、修改和序列化JSON格式的数据。这个库支持多种Java集合,如`List`、`Map`,以及自定义Java对象与JSON之间的转换。在Java项目中,如果需要将JSON字符串转化为...

    JSON - JAVA 使用方法.docx

    以下是一些使用json-lib将Java数据结构转换为JSON的例子: 1. 将List集合转换为JSON: ```java List&lt;String&gt; list = new ArrayList(); list.add("first"); list.add("second"); JSONArray jsonArray2 = JSONArray....

Global site tag (gtag.js) - Google Analytics