`
marystone
  • 浏览: 7479 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

JSON Lib 转换数组对象

阅读更多
看到问答里面有人问这个问题。就是一个json字符串,转换成Java对象。json字符串如下:
[
{
"id": "1",
"fields": [
{"name": "age", "value": 10},
{"name": "id", "value": "1"},
{"name": "name", "value": "name-1"}
]
},
{
"id": "2",
"fields": [
{"name": "age", "value": 10},
{"name": "id", "value": "2"},
{"name": "name", "value": "name-2"}
]
}
] 

要求转换成:
List
Record
Field

上面json字符串是一个数组对象。因此不能使用net.sf.json.JSONObject.fromObject(jsonString)来转换,应该使用JSONArray.fromObject(jsonString)。JSONObject只转换单个对象。
在上面json字符串中对象里面还有一个集合类型。在这里就需要使用classMap来定义对应属性的集合元素类型。

Field:
public class Field {
	
	private String name;
	
	private String value;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getValue() {
		return value;
	}

	public void setValue(String value) {
		this.value = value;
	}
}


Record:
public class Record{
	
	private String id;
	
	private List<Field> fields;
	
	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public List<Field> getFields() {
		return fields;
	}

	public void setFields(List<Field> fields) {
		this.fields = fields;
	}
	
}


Test:
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		String jsonString = "[{\"id\": \"1\",\"fields\": [{\"name\": \"age\", \"value\": 10},{\"name\": \"id\", \"value\": \"1\"},{\"name\": \"name\", \"value\": \"name-1\"}]},{\"id\": \"2\",\"fields\": [{\"name\": \"age\", \"value\": 10},{\"name\": \"id\", \"value\": \"2\"},{\"name\": \"name\", \"value\": \"name-2\"}]}]";

		JSONArray ja = JSONArray.fromObject(jsonString);

		Map<String, Class<Field>> classMap = new HashMap<String, Class<Field>>();
		classMap.put("fields", Field.class);

		List<Record> list = JSONArray.toList(ja, Record.class, classMap);

		for (Record record : list) {
			System.out.println("Record id:" + record.getId());

			for (Field field : record.getFields()) {
				System.out.println("Field name:" + field.getName());
				System.out.println("Field value:" + field.getValue());
			}
		}
	}

}


运行结果如下:
Record id:1
Field name:age
Field value:10
Field name:id
Field value:1
Field name:name
Field value:name-1
Record id:2
Field name:age
Field value:10
Field name:id
Field value:2
Field name:name
Field value:name-2
分享到:
评论

相关推荐

    使用json-lib将java对象转换成json字符串

    标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...

    java对象转换为json字符串或字符串数组

    总结,Java对象转换为JSON字符串或字符串数组是通过引入JSON库,如`json-lib`,然后利用其提供的序列化和反序列化方法实现的。了解并熟练掌握这些方法对于进行Java和JSON之间的数据交换至关重要。在实际项目中,根据...

    使用json-lib实现json与Java对象的互转

    `json-lib` 是一个 Java 库,它提供了将 JSON 格式的数据转换为 Java 对象,以及将 Java 对象转换为 JSON 格式数据的功能。在 Java 开发中,`json-lib` 是一个常用的 JSON 处理工具,尤其适用于需要处理复杂 JSON ...

    jsonlib.rar

    1. **对象到JSON转换**: JSONLib可以将Java对象转换成JSON字符串,这在需要将Java对象发送到服务器或存储为文本文件时非常有用。 2. **JSON到对象转换**: 反之,它也可以将JSON字符串解析成Java对象,便于在Java应用...

    json lib jdk

    JSON Lib是一个Java库,用于在Java对象和JSON数据之间进行相互转换。这个库提供了多种方法来解析JSON字符串到Java对象,以及将Java对象序列化为JSON格式。对于给定的标题"json lib jdk",我们可以理解为这个库特别...

    JSONlib.rar

    2. **支持多种Java类型**:JSONlib支持包括基本类型、数组、集合、Map、自定义类等在内的多种Java数据结构与JSON之间的转换。 3. **集成其他库**:在压缩包中,我们看到包含了一些依赖的第三方库,如: - `commons...

    Jsonlib.zip

    Jsonlib则提供了方便的API,使得Java开发者能够轻松地在Java对象和JSON文本之间进行转换。 在Jsonlib.zip压缩包中,包含了以下三个重要的文件: 1. **json-lib-2.4-jdk15-javadoc.jar**:这是Jsonlib的API文档jar...

    json-lib-2.4-jdk15.jar下载

    2. 支持对象图:可以将复杂的对象层次结构与JSON相互转换,支持List、Map、数组等类型。 3. 支持注解:支持@JSON、@JSONIgnore等注解配置对象的序列化和反序列化。 4. 支持流:除了支持对象/JSON与字符串的相互转换,也...

    jsonlib的所有包

    3. **支持多种Java类型**:Jsonlib不仅支持基本的Java类型(如字符串、数字、布尔值等),还支持数组、集合、Map以及自定义Java对象的转换。 4. **处理复杂数据结构**:对于嵌套的JSON对象和数组,Jsonlib提供了...

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

    3. JSON对象与JSON数组的创建:学习笔记可能介绍如何使用JSON-lib创建JSON对象和数组。例如,你可以通过`net.sf.json.JSONObject`和`net.sf.json.JSONArray`类来实现。 4. Java对象转换为JSON:JSON-lib提供了`...

    jsonlib24_JSON_

    4. **处理复杂类型**:JSONlib支持数组、列表、映射等多种复杂类型的转换,使其在处理复杂的JSON结构时非常灵活。 5. **自定义转换规则**:可以通过注册转化器(Converter)来自定义特定Java类型到JSON的转换,满足...

    jsonlib和所有依赖库

    而JsonLib是一个Java库,它提供了方便的JSON对象到Java对象以及Java对象到JSON对象的转换功能。JsonLib 2.4是该库的一个版本,它允许开发者在Java项目中轻松地处理JSON数据。 JsonLib支持多种数据类型与JSON对象...

    使用jsonlib需要的jar包

    JsonLib支持多种数据类型与JSON的转换,包括基本类型、数组、集合、Map以及自定义对象等。使用JsonLib可以轻松地将Java对象转换为JSON字符串,或者将JSON字符串反序列化为Java对象,这对于数据交换和存储非常有用。 ...

    JSON-lib包json-lib-0.8.jar和json-lib-0.9.jar包

    JSON-lib是一个Java库,用于将Java对象转换为JSON(JavaScript Object Notation)格式,以及将JSON数据转换回Java对象。这个库提供了多种方法来处理JSON数据,使得在Java应用程序中与JSON交互变得更加简单。JSON是一...

    服务器端 json lib包

    1. **对象转换**:`json-lib`提供了一系列的静态方法,如`JSONArray.fromObject()`和`JSONObject.fromObject()`,可以将Java对象转换为JSON数组和对象。 2. **解析JSON**:通过`JSON.parse()`方法,可以将JSON字符...

    JSON-lib框架,转换JSON、XML不再困难

    JSON-lib是一个Java库,用于将Java对象转换为JSON(JavaScript Object Notation)格式,并将JSON数据转换回等效的Java对象。JSON是一种轻量级的数据交换格式,它以易于人阅读和编写,同时也易于机器解析和生成。在...

    json-lib-2.4-jdk15.jar及其相关依赖

    4. **处理数组和集合**: 转换数组或集合时,只需传入相应的对象,如: ```java List&lt;Person&gt; people = new ArrayList(); // 添加Person对象到people... JSONArray jsonArray = JSONArray.fromObject(people); List...

    json-lib-2.3.jar

    json-lib-2.3.jar是这个库的一个版本,用于支持将Java对象转换成JSON格式和将JSON数据反序列化为Java对象。 标题中提到的"json-lib-2.3.jar"是json-lib库的一个具体实现,主要包含了一系列处理JSON的类和方法。这个...

    json-lib应用所有jar

    1. **易用性**:JSON-lib提供了简单直观的API,使得Java对象与JSON之间的转换变得简单。例如,可以使用`net.sf.json.JSONObject`来表示一个JSON对象,`net.sf.json.JSONArray`表示JSON数组。 2. **灵活性**:它支持...

    多层集合嵌套的JSON数据转化为Java对象(src.zip)

    这个库将多层集合嵌套的JSON数据转换为Java对象。 `net.sf.json.JSONObject`是开源项目Apache JSON-lib的一部分,它提供了丰富的API来处理JSON数据。以下将详细介绍如何进行转化: 1. **导入依赖** 首先,你需要...

Global site tag (gtag.js) - Google Analytics