将Json数组转换为Java数组

时间:2012-11-08 09:30:14

标签: java json

我正在尝试将此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岁吗?

5 个答案:

答案 0 :(得分:3)

为什么重新发明轮子,使用GSON - 一个可用于将Java对象转换为JSON表示的Java库,反之亦然

答案 1 :(得分: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") );

答案 2 :(得分:0)

您也可以使用xStream来完成它,它有一个非常简单的API。只是谷歌吧。

答案 3 :(得分: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) {

        }

   }

答案 4 :(得分: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"));