在Java中编写一个简单的JSON响应

时间:2012-12-17 11:52:49

标签: java json serialization

想象一下简单的JSON响应,例如:

{
    "success": false,
    "message": "PEBKAC"
}

鉴于我有booleanString个变量,在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有什么简单的东西吗?

6 个答案:

答案 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

使用google-gson

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)

你看过gson吗?

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中没有内置支持