想象一下简单的JSON响应,例如:
{
"success": false,
"message": "PEBKAC"
}
鉴于我有boolean
和String
个变量,在Java中将它们转换为JSON的最简单方法是什么,而不是诉诸String.format
和朋友。
我更熟悉C#,使用内置的JavaScriptSerializer
class非常简单:
var success = false;
var message = "PEBKAC";
var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(new { success, message });
Java有什么简单的东西吗?
答案 0 :(得分:8)
使用JSON
的序列强>
org.json.JSONObject obj = new org.json.JSONObject();
obj.put("success", false);
obj.put("message", "PEBKAC");
obj.toString();
反序列化
org.json.JSONObject obj = new org.json.JSONObject(responseAsString);
obj.optBoolean("success"); // false
obj.optString("message"); // PEBKAC
public class MyObject
{
private String message;
private boolean success;
public MyObject(String message, boolean success)
{
this.message = message;
this.success = success;
}
}
序列化
MyObject obj = new MyObject("PEBKAC", false);
new com.google.gson.Gson().toJSON(obj);
<强>反序列化强>
MyObject obj = new com.google.gson.Gson().fromJSON(responseAsString, MyObject.class);
obj.getMessage();
obj.getSuccess();
答案 1 :(得分:1)
http://code.google.com/p/google-gson/
//亨利克
答案 2 :(得分:1)
有JSON解析器库可用,其中一个是Jackson(http://jackson.codehaus.org)。 Jackson的ObjectMapper类(http://jackson.codehaus.org/1.9.9/javadoc/org/codehaus/jackson/map/ObjectMapper.html)为您提供类似于C#中的JavaScriptSerializer的功能。
答案 3 :(得分:0)
使用org.json.JSONObject
http://www.json.org/javadoc/org/json/JSONObject.html
您可以创建JSON对象,然后使用put方法添加值。
然后调用jsonObj.toString()
获取JSON
答案 4 :(得分:0)
看一下谷歌的GSON。 Java库是否可以与JSON一起使用。
http://code.google.com/p/google-gson/
这里有一些例子:
https://sites.google.com/site/gson/gson-user-guide#TOC-Primitives-Examples
<强>更新强>
就像@Ilya代码一样,这个例子就在链接中。但这就像是:
对象:
public class MyObj
{
private String message;
private boolean success;
public MyObj(String message, boolean success)
{
this.message = message;
this.success = success;
}
}
转换为JSON:
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
MyObj obj = new MyObj("PEBKAC",false);
Gson gson = new Gson();
System.out.println(gson.toJson(obj));
}
}
输出:
{"message":"PEBKAC","success":false}
答案 5 :(得分:0)
在java中有许多简单的库来处理JSON,请检查:JSON
Java中没有内置支持