星期一上班状态不佳写个小功能需求将List集合对象转为JSON字符串传到页面上做下拉列表显示,可是当我把功能写完转换后还是一个对象还以为公共方法有问题但是排查后不是,后面将我的问题记录下来,防止自己下次再遇到此问题。前简单说一下有“HotActivityVo”对象里面有两个属性如下代码:
public class HotActivityVo { private Integer aId;// ID private String text;// 名称 public Integer getaId() { return aId; } public void setaId(Integer aId) { this.aId = aId; } public String getText() { return text; } public void setText(String text) { this.text = text; } }
下面代码是将List集合对象转变为JSON字符串,如下代码
public static String buildJsonArrayToStr(List<?> list) throws IOException{ JSONArray jsonArray = new JSONArray(); jsonArray.addAll(list); StringWriter out = new StringWriter(); jsonArray.writeJSONString(out); return out.toString(); }
main方法测试一下,如下代码:
public static void main(String[] args) { List<HotActivityVo> havl = new ArrayList<HotActivityVo>(); HotActivityVo hav = new HotActivityVo(); hav.setaId(1); hav.setText("苹果"); HotActivityVo hav2 = new HotActivityVo(); hav2.setaId(2); hav2.setText("西瓜"); havl.add(hav); havl.add(hav2); try { String json = JsonUtils.buildJsonArrayToStr(havl); System.out.println(json); } catch (IOException e) { e.printStackTrace(); } }
运行后的结果:
[com.born.wom.action.vo.HotActivityVo@41408b80,com.born.wom.action.vo.HotActivityVo@7486a1f7]
解决方法:
在"HotActivityVo"对象当中实现"JSONStreamAware"就可以解决问题,如下代码:
public class HotActivityVo implements JSONStreamAware { private Integer aId;// ID private String text;// 名称 public Integer getaId() { return aId; } public void setaId(Integer aId) { this.aId = aId; } public String getText() { return text; } public void setText(String text) { this.text = text; } @Override public void writeJSONString(Writer write) throws IOException { LinkedHashMap<String, Object> jsonStr = new LinkedHashMap<String, Object>(); jsonStr.put("configId", this.aId); jsonStr.put("content", this.text); JSONValue.writeJSONString(jsonStr, write); }
运行结果:
[{"configId":1,"content":"苹果"},{"configId":2,"content":"西瓜"}]
相关推荐
这是本人写的一个基于JSON的完整项目,实现了Java对象、数组、集合转换为Json(Json转化为Java对象、数组、集合)。这是一个完整的项目,下载解压后直接导入MyEclipse/Eclipse中,运行com.demo.JSONDemo类即可看到效果...
将List集合转换为JSON对象是数据处理中的一项基本技能,尤其在进行Web开发和数据交互时尤为重要。 上述内容主要介绍了如何将List集合转换为JSON对象。这一过程主要涉及以下几个方面的知识点: 1. 手动构建JSON对象...
在IT行业中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于服务器与客户端之间传递数据。Java作为一种常用的后端开发语言,需要处理这些JSON数据,将其转化为Java对象以便于操作。本主题...
Jackson是Java领域最流行的JSON处理库之一,它提供了高效且灵活的API来实现JSON与Java对象之间的相互转换。本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,...
在这个例子中,`json.dumps()`接收一个Python对象(这里是列表),并返回对应的JSON格式字符串。注意,JSON不支持Python中的元组、字典等复杂数据结构,所以如果列表包含这些类型,需要进行适当的转换。 在实际应用...
在IT行业中,数据转换是常见的操作,特别是在处理对象与数据传输格式之间的时候。"对象转换成JSON和Map"是一个核心话题,特别是在Java编程语言中,因为JSON(JavaScript Object Notation)是网络通信中广泛使用的轻...
总结一下,JavaScript提供了`JSON.stringify()`和`JSON.parse()`两个内置方法,用于在数组对象和JSON格式之间进行转换。在实际应用中,我们可以根据需求选择是否使用替换函数来定制转换过程。了解并熟练掌握这些基础...
将JavaBean对象转为JSON时,我们可以使用如Jackson、Gson、Fastjson等流行的JSON库。以Jackson为例,首先需要引入Jackson库的依赖,然后创建一个JavaBean类,定义其属性。通过`ObjectMapper`的`writeValueAsString()...
在标题“Jackson对象json字符串数组集合互转”中,提到的核心概念是Jackson如何处理JSON字符串与Java集合(如List、Array等)之间的转换。下面将详细解释这一过程以及涉及的相关知识点。 1. JSON与Java对象映射: ...
Fastjson的使用也非常直观,`JSON.toJSONString(obj)`可将Java对象转为JSON字符串,`JSON.parseObject(jsonStr, YourClass.class)`则完成反序列化。 这些库不仅支持基本类型和普通对象的转换,还支持集合、Map以及...
本篇文章将深入探讨如何将Java中的List和Map对象转化为JSON格式,并涉及与AJAX交互的相关知识。 1. **Java JSON库**: 在Java中,我们可以使用多种库来实现对象到JSON的转换,如Jackson、Gson、Fastjson等。这里以...
要将实体类转换为JSON,我们首先创建实体类的对象集合,然后使用Fastjson的`JSON.toJSONString()`方法。在`JsonTest`类的`test()`方法中,我们创建了一个`User`对象的列表,并使用`JSON.toJSONString()`将这个列表...
JSON格式被广泛用于网络数据传输,它允许数据在服务器和客户端之间进行简单而有效的传输。JSON对象可以通过`JSON.parse()`方法从JSON字符串转换成JavaScript对象,反之,`JSON.stringify()`方法可以将JavaScript对象...
6. **`ezmorph-1.0.6.jar`**:EZMorph库主要用于Java对象的动态转换,虽然不是直接用于JSON转换,但在需要将Java对象转换成适合JSON格式的类型时,可能会用到。 在实际应用中,如果你对JSON的结构有严格的要求,如...
将数据库的Table表转换成JSON格式的字符串是数据处理与传输中的常见需求,尤其是在Web开发领域,这种转换有助于实现前后端的数据交互,因为JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...
在JSON解析中,这个库可以用于将JSON对象映射到JavaBean,或将JavaBean对象转换成JSON格式。 4. **ezmorph-1.0.4.jar**:Ezmorph是一个Java库,主要用于对象的动态转型。在处理JSON时,它可能帮助将JSON数据转换为...
在Android开发中,数据交换和存储常常涉及到JSON格式,它是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。当需要将Android应用中的数据列表发送到服务器或者从服务器获取数据时,通常需要...
JSON格式易于人阅读和编写,同时也易于机器解析和生成。 JSON主要由两种基本数据类型构成:对象和数组。对象是一个无序的键值对集合,用花括号{}包围,每个键值对由一个键(key)和一个值(value)组成,键与值之间...
3. **序列化数组数据**:将对象转换为JSON格式的数据。 - `var`变量类型自定义,根据右值的类型决定。 4. **将Json数据转为数组**:反序列化JSON数据为数组对象。 - `DataContractJsonSerializer`使用同一方法...
// 将Java对象转为JSON字符串 String jsonString = mapper.writeValueAsString(obj); ``` 2. Gson库: Gson是Google提供的一个开源库,它也提供了将Java对象转换为JSON字符串,以及将JSON字符串转换回Java对象...