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 库,可用于将 Java 对象转换为其 JSON 表示,反之亦然

于 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

你也可以使用 xStream 来做这件事,它有一个非常简单的 API。只需谷歌即可。

于 2012-11-08T09:36:31.307 回答
0

您始终可以使用以下库,例如:

- Jackson

- GSON

好的,这是不使用任何库的正确方法:

例如:

JSONArray jarr = api.giveJsonArr();

// giveJsonArr() 方法是一个自定义的方法来给Json Array。

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