5

次のような単純なJSON応答を想像してみてください。

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

boolean私が持っている変数を考えると、JavaでJSONに変換する最も簡単な方法は、友達Stringに頼ることなく、何ですか。String.format

私はC#に精通しています。これは、組み込みJavaScriptSerializerクラスを使用すると非常に簡単です。

var success = false;
var message = "PEBKAC";
var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(new { success, message });

Javaにとってこれほど簡単なことはありますか?

4

6 に答える 6

9

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();
于 2012-12-17T12:00:40.187 に答える
1

gsonを見たことがありますか?

http://code.google.com/p/google-gson/

//ヘンリック

于 2012-12-17T11:55:12.800 に答える
1

利用可能なJSONパーサーライブラリがあり、そのうちの1つはJackson(http://jackson.codehaus.org)です。JacksonのObjecMapperクラス(http://jackson.codehaus.org/1.9.9/javadoc/org/codehaus/jackson/map/ObjectMapper.html)は、C#のJavaScriptSerializerと同様の機能を提供します。

于 2012-12-17T11:58:32.437 に答える
0

org.json.JSONObjectを使用する

http://www.json.org/javadoc/org/json/JSONObject.html

JSONオブジェクトを作成してから、putメソッドを使用して値を追加できます。次に、呼び出しjsonObj.toString()てJSONを取得します

于 2012-12-17T11:55:49.417 に答える
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}
于 2012-12-17T11:55:57.770 に答える
0

JavaでJSONを処理するための単純なライブラリがたくさんあります。確認してください:JSON

Javaには組み込みのサポートはありません

于 2012-12-17T11:56:17.310 に答える