我正在尝试将此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岁吗?
答案 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"));