Java 如何从JSON对象获取单个值

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

我在android中使用PubNub API来获取实时数据,但我需要一些特定的值,而不是整个值。如何获取值,例如c7和c9。我想让他们画一个实时图表

 @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