我有字符串对象:
String qwe =
"{\"myObj\":"
+ "{"
+ "\"first\":123,"
+ "\"second\":111.0}"
+"}";
我的代码
private static final String TAG_FIRST = "first";
res = new JSONObject(qwe);
Double q1 = res.getDouble(TAG_FIRST);
我有“先没有价值”的例外。
我做错了什么?
抱歉我的英语不好。 最好的问候答案 0 :(得分:5)
您的JSON定义了一个属性为myObj
的对象。 myObj
的值是一个不同的对象。 该对象具有first
属性。如果我们只查看JSON并使用缩进:
{
"myObj": {
"first": 123,
"second": 111.0
}
}
首先,您必须获取myObj
对象,然后从它获取first
。
private static final String TAG_MYOBJ = "myObj";
private static final String TAG_FIRST = "first";
res = new JSONObject(qwe);
JSONObject myObj = res.getJSONObject(TAG_MYOBJ);
Double q1 = myObj.getDouble(TAG_FIRST);
或者,如果你没有意思拥有那个外层,你可能希望你的JSON字符串看起来像这样:
String qwe =
+ "{"
+ "\"first\":123,"
+ "\"second\":111.0"
+"}";
该字符串包含此JSON:
{
"first": 123,
"second": 111.0
}
...可以正常使用原始代码(此处重复):
private static final String TAG_FIRST = "first";
res = new JSONObject(qwe);
Double q1 = res.getDouble(TAG_FIRST);