Java 如何从JSON对象获取单个值
我在android中使用PubNub API来获取实时数据,但我需要一些特定的值,而不是整个值。如何获取值,例如c7和c9。我想让他们画一个实时图表Java 如何从JSON对象获取单个值,java,android,json,Java,Android,Json,我在android中使用PubNub API来获取实时数据,但我需要一些特定的值,而不是整个值。如何获取值,例如c7和c9。我想让他们画一个实时图表 @Override public void message(PubNub pubnub, PNMessageResult message) { System.out.println(message); } 我得到的结果是:- PNMessageResult message={c1:27,c
@Override
public void message(PubNub pubnub, PNMessageResult message) {
System.out.println(message);
}
我得到的结果是:-
PNMessageResult message={c1:27,c2:3,c3:2017,c4:15,c5:56,c6:52,c7:15.07,c8:p&Q,c9:24.86,c10:82,c11:32.74}`如果您从json api解析任何值,您应该为此创建json对象
Make json object and parse specific value:
{
"c1":27,
"c2":3,
"c3":2017,
"c4":15,
"c5":56,
"c6":52,
"c7":15.07,
"c8":"P&Q",
"c9":24.86,
"c10":82,
"c11":32.74
}
try{
JSONObject jsonObject = new JSONObject("your string");
double c7 = jsonObject.getDouble("c7");
double c9 = jsonObject.getDouble("c9");
}
catch(JSONException e){
e.printStackTrace()
}
例如:
{
"c1":27,
"c2":3,
"c3":2017,
"c4":15,
"c5":56,
"c6":52,
"c7":15.07,
"c8":"P&Q",
"c9":24.86,
"c10":82,
"c11":32.74
}
try{
JSONObject jsonObject = new JSONObject("string");
String c8 = jsonObject.getString("c8");
}
catch(Exception e){
}
您需要下载org.json库并将其包含在程序中。您的json消息包含int、double和string值。您需要使用迭代器获取所有KEYc1、c2…c11,还需要检查其typeint、double和string。最后使用键C7、c9。。价值观根据您的需要而定
String s="{
"c1":27,
"c2":3,
"c3":2017,
"c4":15,
"c5":56,
"c6":52,
"c7":15.07,
"c8":"P&Q",
"c9":24.86,
"c10":82,
"c11":32.74`
}";
try{
JSONObject jsonObject = new JSONObject(s);
double c7 = jsonObject.getDouble("c6");
double c9 = jsonObject.getDouble("c2");
}
catch(JSONException e){
e.printStackTrace()
}
这是一个工作代码。试试这个:
希望这将有助于~许多JSON操作指南的解答,但非常简单,有一个PubNub示例。请看下面我的答案。希望你能得到预期的结果。
String s="{
"c1":27,
"c2":3,
"c3":2017,
"c4":15,
"c5":56,
"c6":52,
"c7":15.07,
"c8":"P&Q",
"c9":24.86,
"c10":82,
"c11":32.74`
}";
try{
JSONObject jsonObject = new JSONObject(s);
double c7 = jsonObject.getDouble("c6");
double c9 = jsonObject.getDouble("c2");
}
catch(JSONException e){
e.printStackTrace()
}
public void parseJson() {
// Your PNMessageResult JSON string
// {"c1":27,"c2":3,"c3":2017,"c4":15,"c5":56,"c6":52,"c7":15.07,"c8":"P&Q","c9":24.86,"c10":82,"c11":32.74}
String jsonStr = "{\"c1\":27,\"c2\":3,\"c3\":2017,\"c4\":15,\"c5\":56,\"c6\":52,\"c7\":15.07,\"c8\":\"P&Q\",\"c9\":24.86,\"c10\":82,\"c11\":32.74}";
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Keys: c1, c2, c3.....c11
Iterator<String> keys = jsonObj.keys();
while(keys.hasNext()) {
String key = keys.next();
Object object = jsonObj.get(key);
if (object instanceof Integer || object instanceof Long) {
long valueLong = ((Number)object).longValue();
Log.d("SUCCESS", "Int value: " + valueLong + "\n" + key + ": " + valueLong);
// Do something with value
} else if (object instanceof Float || object instanceof Double) {
double valueDouble = ((Number)object).doubleValue();
Log.d("SUCCESS", "Double value: " + valueDouble + "\n" + key + ": " + valueDouble);
// Do something with value
} else if (JSONObject.NULL.equals(object)) {
Object valueNull = null;
// Do something with value
} else {
String valueString = jsonObj.getString(key);
Log.d("SUCCESS", "String value: " + valueString + "\n" + key + ": " + valueString);
// Do something with value
}
}
} catch (final JSONException e) {
Log.e("FAILED", "Json parsing error: " + e.getMessage());
}
}
}
03-29 12:15:26.848 12536-12536/com.ferdous.collapsibletoolbar D/MESSAGE: PNMessage: {"c1":27,"c2":3,"c3":2017,"c4":15,"c5":56,"c6":52,"c7":15.07,"c8":"P&Q","c9":24.86,"c10":82,"c11":32.74}
03-29 12:15:26.848 12536-12536/com.ferdous.collapsibletoolbar D/SUCCESS: Int value: 27
c1: 27
03-29 12:15:26.848 12536-12536/com.ferdous.collapsibletoolbar D/SUCCESS: Int value: 3
c2: 3
03-29 12:15:26.848 12536-12536/com.ferdous.collapsibletoolbar D/SUCCESS: Int value: 2017
c3: 2017
03-29 12:15:26.848 12536-12536/com.ferdous.collapsibletoolbar D/SUCCESS: Int value: 15
c4: 15
03-29 12:15:26.848 12536-12536/com.ferdous.collapsibletoolbar D/SUCCESS: Int value: 56
c5: 56
03-29 12:15:26.848 12536-12536/com.ferdous.collapsibletoolbar D/SUCCESS: Int value: 52
c6: 52
03-29 12:15:26.848 12536-12536/com.ferdous.collapsibletoolbar D/SUCCESS: Double value: 15.07
c7: 15.07
03-29 12:15:26.848 12536-12536/com.ferdous.collapsibletoolbar D/SUCCESS: String value: P&Q
c8: P&Q
03-29 12:15:26.848 12536-12536/com.ferdous.collapsibletoolbar D/SUCCESS: Double value: 24.86
c9: 24.86
03-29 12:15:26.848 12536-12536/com.ferdous.collapsibletoolbar D/SUCCESS: Int value: 82
c10: 82
03-29 12:15:26.848 12536-12536/com.ferdous.collapsibletoolbar D/SUCCESS: Double value: 32.74
c11: 32.74