### JSON转对象数组与对象数组转JSON(Java) 在Java编程语言中,处理JSON数据时经常需要进行JSON字符串与Java对象之间的转换。特别是在涉及到数组或集合的场景下,这种转换显得尤为重要。本文将详细介绍如何使用Java实现JSON字符串与对象数组之间的相互转换。 #### JSON转对象数组 首先来看一个具体的例子,假设我们有以下JSON字符串: ```java String obj = "[{\"MName\":\"aaa\",\"MValue\":\"bbb\"}]"; ``` 这个JSON字符串表示的是一个包含单个元素的数组,每个元素都是一个具有`MName`和`MValue`属性的对象。我们的目标是将其转换为一个`PropertyT`类型的对象数组。 为了完成这个任务,我们可以利用Apache Commons Lang库中的`JSONArray`和`JSONSerializer`类来实现转换。具体步骤如下: 1. **初始化JSON字符串**:直接使用字符串作为输入。 2. **解析JSON字符串**:使用`JSONArray.fromObject()`方法将JSON字符串转换成`JSONArray`对象。 3. **配置JsonConfig**:创建一个`JsonConfig`实例,并设置相应的属性,比如指定数组模式和根对象类型。 4. **转换为Java对象**:使用`JSONSerializer.toJava()`方法将`JSONArray`转换为指定类型的Java对象数组。 下面是一个示例代码: ```java import org.json.JSONArray; import net.sf.json.JsonConfig; import net.sf.json.util.JSONSerializer; // 假设PropertyT是我们定义的一个Java类 public class PropertyT { private String MName; private String MValue; // Getter and Setter methods public String getMName() { return MName; } public void setMName(String mName) { this.MName = mName; } public String getMValue() { return MValue; } public void setMValue(String mValue) { this.MValue = mValue; } } public class Main { public static void main(String[] args) { String obj = "[{\"MName\":\"aaa\",\"MValue\":\"bbb\"}]"; System.out.println(obj); JSONArray array = JSONArray.fromObject(obj); JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setArrayMode(JsonConfig.MODE_OBJECT_ARRAY); jsonConfig.setRootClass(PropertyT.class); PropertyT[] mProperties = (PropertyT[]) JSONSerializer.toJava(array, jsonConfig); for (int i = 0; i < mProperties.length; i++) { System.out.println(mProperties[i].getMName()); System.out.println(mProperties[i].getMValue()); } } } ``` 在这个示例中,我们通过`JSONArray.fromObject()`将JSON字符串转换为`JSONArray`对象,然后使用`JSONSerializer.toJava()`方法将该数组转换为`PropertyT`类型的对象数组。 #### 对象数组转JSON 接下来,我们来看看如何将一个Java对象数组转换回JSON格式的字符串。 这个过程相对简单,主要涉及以下步骤: 1. **初始化Java对象数组**:创建一个`PropertyT`类型的数组,并填充相应的数据。 2. **转换为JSON**:利用`JSONArray.fromObject()`将对象数组转换为`JSONArray`对象,然后调用`toString()`方法获得JSON格式的字符串。 示例代码如下: ```java import org.json.JSONArray; import net.sf.json.JsonConfig; import net.sf.json.util.JSONSerializer; public class Main { public static void main(String[] args) { PropertyT[] mProperties = new PropertyT[1]; mProperties[0] = new PropertyT(); mProperties[0].setMName("aaa"); mProperties[0].setMValue("bbb"); JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setArrayMode(JsonConfig.MODE_OBJECT_ARRAY); jsonConfig.setRootClass(PropertyT.class); JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(mProperties, jsonConfig); String jsonString = jsonArray.toString(); System.out.println(jsonString); } } ``` 这段代码演示了如何将一个`PropertyT`类型的对象数组转换为JSON格式的字符串。 以上就是关于Java中JSON字符串与对象数组之间相互转换的基本流程和技术要点。通过这种方式,开发者可以更加灵活地处理各种复杂的JSON数据结构。
System.out.println(obj);
JSONArray array=JSONArray.fromObject(obj);
JsonConfig jsonconfig=new JsonConfig();
jsonconfig.setArrayMode( JsonConfig.MODE_OBJECT_ARRAY );
jsonconfig.setRootClass(PropertyT.class);
PropertyT[] mProperties=(PropertyT[])JSONSerializer.toJava(array,jsonconfig);
for(int i=0;i<mProperties.length;i++){
System.out.println(mProperties[i].getMName());
System.out.println(mProperties[i].getMValue());
}
=======================
var objects;
function loadSearch()
{
var searchId=document.getElementById("searchId").value;
var ur="search.ao?method=postEditSearch&searchId="+searchId;
$.post(ur,null,loadSearchListener,"json");
}
function loadSearchListener(obj)
{
$("#txt_caption").attr("value",obj['MCaption']);
objects=obj;
$.post("search.ao?method=postInsertSearch",null,loadListener,"json");
}
- 粉丝: 1
- 资源: 12
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- (源码)基于计算机系统原理与Arduino技术的学习平台.zip
- (源码)基于SSM框架的大学消息通知系统服务端.zip
- (源码)基于Java Servlet的学生信息管理系统.zip
- (源码)基于Qt和AVR的FestosMechatronics系统终端.zip
- 1
- 2
- 3
- 4
- 5
前往页