如何在Java中转换或转换哈希图到JSON对象,并再次将JSON对象转换为JSON字符串?


当前回答

我使用阿里巴巴fastjson,简单明了:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>VERSION_CODE</version>
</dependency>

和导入:

import com.alibaba.fastjson.JSON;

然后:

String text = JSON.toJSONString(obj); // serialize
VO vo = JSON.parseObject("{...}", VO.class); //unserialize

一切都好。

其他回答

Gson还可以用于序列化任意复杂的对象。

下面是如何使用它:

Gson gson = new Gson(); 
String json = gson.toJson(myObject); 

Gson将自动将集合转换为JSON数组。Gson可以序列化私有字段并自动忽略瞬态字段。

你可以使用Gson。 这个库提供了将Java对象转换为JSON对象的简单方法,反之亦然。

例子:

GsonBuilder gb = new GsonBuilder();
Gson gson = gb.serializeNulls().create();
gson.toJson(object);

当需要设置默认选项以外的配置选项时,可以使用GsonBuilder。在上面的例子中,转换过程也将序列化object中的null属性。

但是,这种方法只适用于非泛型类型。对于泛型类型,你需要使用toJson(object, Type)。

更多关于Gson的信息请点击这里。

记住,对象必须实现Serializable接口。

首先将所有对象转换为有效的string

HashMap<String, String> params = new HashMap<>();
params.put("arg1", "<b>some text</b>");
params.put("arg2", someObject.toString());

然后将整个映射插入到org.json.JSONObject中

JSONObject postData = new JSONObject(params);

现在您可以通过调用对象的toString来获取JSON

postData.toString()
//{"arg1":"<b>some text<\/b>" "arg2":"object output"}

创建一个新的JSONObject

JSONObject o = new JSONObject(postData.toString());

或者作为通过HTTP发送的字节数组

postData.toString().getBytes("UTF-8");

你可以使用:

new JSONObject(map);

其他函数可以从它的文档中获得 http://stleary.github.io/JSON-java/index.html

这对我来说很管用:

import groovy.json.JsonBuilder
properties = new Properties()
properties.put("name", "zhangsan")

println new JsonBuilder(properties).toPrettyString()