1

この JSON 文字列を配列に変換しようとしています。

{"result":"success","source":"chat","tag":null,"success":{"message":"%message%","time":%time%,"player":"%player%"}}

次のように出力したいと思います。

<%player%> %message%

私はJavaに非常に慣れていません。PHPから来ました。次の行に沿って何かを行うことができます。

$result = json_decode($jsonfile, true);
echo "<".$result['success']['player']."> ".$result['success']['message'];

Output: <%player%> %message%

Javaでこれを行う簡単な方法はありますか?

類似のトピックをいくつか検索しましたが、よくわかりませんでした。私が5歳のように、誰かが私にこれを説明できますか?

4

5 に答える 5

2

車輪の再発明を行う理由、GSONを使用する-Java オブジェクトをJSON表現に、またはその逆に変換するために使用できるJavaライブラリ

于 2012-11-08T09:32:26.607 に答える
1

JSON-libは Java の JSON に適したライブラリです。

String jsonString = "{message:'%message%',player:'%player%'}";
JSONObject obj = JSONObject.fromObject(jsonString);    
System.out.println("<" + obj.get("message") + ">" + obj.get("player") );
于 2012-11-08T09:42:52.953 に答える
0

ご覧のとおり、多くの選択肢があります。これは json.org からの簡単なもので、他にもたくさんの選択肢があります。彼らが自分自身に提供するものは単純です。これがあなたの例です:

    String json = "{\"result\":\"success\",\"source\":\"chat\",\"tag\":null,\"success\":{\"message\":\"%message%\",\"time\":%time%,\"player\":\"%player%\"}}";
    JSONObject obj = new JSONObject(json);
    JSONObject success = obj.getJSONObject("success");
    System.out.println("<" + success.get("player") + "> "
                       + success.get("message"));
于 2012-11-08T09:46:14.643 に答える
0

非常に単純な API を持つ xStream を使用してそれを行うこともできます。ちょうどそれのためのグーグル。

于 2012-11-08T09:36:31.307 に答える
0

次のようなライブラリをいつでも使用できます。

- Jackson

- GSON

ライブラリを使用せずにそれを行う正しい方法は次のとおりです。

例えば:

JSONArray jarr = api.giveJsonArr();

// GiveJsonArr() メソッドは、Json 配列を渡すカスタム メソッドです。

for (int i = 0; i < jarr.length(); i++) {

   JSONObject jobj = jarr.getJSONObject(i);   // Taking each Json Object

   String mainText = new String();            // fields to hold extracted data
   String provText = new String();
   String couText = new String();
   String fDatu = new String();

   try {
     mainText = jobj.getString("Overview");   // Getting the value of fields
     System.out.println(mainText);
    } catch (Exception ex) {

    }

    try {

    JSONObject jProv = jobj.getJSONObject("Provider");
    provText = jProv.getString("Name");
    System.out.println(provText);
    } catch (Exception ex) {

    }

    try {
        JSONObject jCou = jobj.getJSONObject("Counterparty");
        couText = jCou.getString("Value");
        System.out.println(couText);
    } catch (Exception ex) {

    }

    try {
                String cloText = jobj.getString("ClosingDate");
        fDatu = giveMeDate(cloText);
        System.out.println(fDatu);
        } catch (Exception ex) {

        }

   }
于 2012-11-08T09:42:37.560 に答える