我正在尝试解析java中的JSON字符串,以单独打印各个值。但是,在使程序运行时,出现以下错误-
Exception in thread "main" java.lang.RuntimeException: Stub!
at org.json.JSONObject.<init>(JSONObject.java:7)
at ShowActivity.main(ShowActivity.java:29)
我的班级看起来像-
import org.json.JSONException;
import org.json.JSONObject;
public class ShowActivity {
private final static String jString = "{"
+ " \"geodata\": ["
+ " {"
+ " \"id\": \"1\","
+ " \"name\": \"Julie Sherman\","
+ " \"gender\" : \"female\","
+ " \"latitude\" : \"37.33774833333334\","
+ " \"longitude\" : \"-121.88670166666667\""
+ " }"
+ " },"
+ " {"
+ " \"id\": \"2\","
+ " \"name\": \"Johnny Depp\","
+ " \"gender\" : \"male\","
+ " \"latitude\" : \"37.336453\","
+ " \"longitude\" : \"-121.884985\""
+ " }"
+ " }"
+ " ]"
+ "}";
private static JSONObject jObject = null;
public static void main(String[] args) throws JSONException {
jObject = new JSONObject(jString);
JSONObject geoObject = jObject.getJSONObject("geodata");
String geoId = geoObject.getString("id");
System.out.println(geoId);
String name = geoObject.getString("name");
System.out.println(name);
String gender=geoObject.getString("gender");
System.out.println(gender);
String lat=geoObject.getString("latitude");
System.out.println(lat);
String longit =geoObject.getString("longitude");
System.out.println(longit);
}
}
让我知道我丢失了什么,或者为什么每次运行该应用程序时都会得到该错误。任何意见,将不胜感激。
看我的评论。当以 android.jar身份运行时,您需要包含完整的org.json库。仅包含要针对其进行编译的存根。
__
此外,您还必须}
在JSON数据中删除额外的两个实例longitude
。
private final static String JSON_DATA =
"{"
+ " \"geodata\": ["
+ " {"
+ " \"id\": \"1\","
+ " \"name\": \"Julie Sherman\","
+ " \"gender\" : \"female\","
+ " \"latitude\" : \"37.33774833333334\","
+ " \"longitude\" : \"-121.88670166666667\""
+ " },"
+ " {"
+ " \"id\": \"2\","
+ " \"name\": \"Johnny Depp\","
+ " \"gender\" : \"male\","
+ " \"latitude\" : \"37.336453\","
+ " \"longitude\" : \"-121.884985\""
+ " }"
+ " ]"
+ "}";
除此之外geodata
,实际上不是a JSONObject
而是a JSONArray
。
这是经过全面测试并且经过测试的更正代码:
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class ShowActivity {
private final static String JSON_DATA =
"{"
+ " \"geodata\": ["
+ " {"
+ " \"id\": \"1\","
+ " \"name\": \"Julie Sherman\","
+ " \"gender\" : \"female\","
+ " \"latitude\" : \"37.33774833333334\","
+ " \"longitude\" : \"-121.88670166666667\""
+ " },"
+ " {"
+ " \"id\": \"2\","
+ " \"name\": \"Johnny Depp\","
+ " \"gender\" : \"male\","
+ " \"latitude\" : \"37.336453\","
+ " \"longitude\" : \"-121.884985\""
+ " }"
+ " ]"
+ "}";
public static void main(final String[] argv) throws JSONException {
final JSONObject obj = new JSONObject(JSON_DATA);
final JSONArray geodata = obj.getJSONArray("geodata");
final int n = geodata.length();
for (int i = 0; i < n; ++i) {
final JSONObject person = geodata.getJSONObject(i);
System.out.println(person.getInt("id"));
System.out.println(person.getString("name"));
System.out.println(person.getString("gender"));
System.out.println(person.getDouble("latitude"));
System.out.println(person.getDouble("longitude"));
}
}
}
这是输出:
C:\dev\scrap>java -cp json.jar;. ShowActivity
1
Julie Sherman
female
37.33774833333334
-121.88670166666667
2
Johnny Depp
male
37.336453
-121.884985
我正在尝试在java中解析JSON字符串以单独打印单个值。但是在运行程序时,我得到了以下错误- 我的班级看起来像- 让我知道我遗漏了什么,或者每次运行应用程序时都会出现错误的原因。如有任何意见,将不胜感激。
问题内容: 我有一个带有unicode字符的json文件,但我无法解析它。我已经在Flash CS5(JSON库)中进行了尝试,并且在http://json.parser.online.fr/中进行了尝试,但我始终会收到“意外令牌- 评估失败” 抱歉,语法确实存在问题,它是通过客户端发送的。 有人可以帮帮我吗?谢谢 问题答案: RFC: JSON文本应以Unicode编码。默认编码为UTF-8。
问题内容: 我有以下Json字符串 我正在尝试解析它并打印出每个名称和值-最简单的方法是什么?我尝试了jQuery.parseJSON但我不知道如何使用它 示例代码会很棒 问题答案: 结果是: jsFiddle示例:http://jsfiddle.net/bradchristie/XtzjZ/1/
问题内容: 我正在尝试解析用PHP编码并通过TCP发送到C ++客户端的JSON字符串。 我的JSON字符串如下所示: 在C ++客户端上,我正在使用jsoncpp库: 问题是我没有得到任何输出,甚至没有关于解析的错误(如果有)。你能帮我了解我做错了什么吗? 问题答案: 您的问题是:没有 root [“ name”] 。您的文档应如下所示: 和你的代码是这样的: 如果您想按原样保留数据: 使用迭代
本文向大家介绍Java fastjson解析json字符串实现过程解析,包括了Java fastjson解析json字符串实现过程解析的使用技巧和注意事项,需要的朋友参考一下 jar的下载 maven方式 jar包 百度云链接:https://pan.baidu.com/s/1x_C4ii3OFMXbsoqikmZKGw 提取码:ku6z 示例 解析json数组 以上就是本文的全部内容,希望对大家
问题内容: 我正在尝试解析一个JSON结构,如: 也就是说,JSON中的元素是带有转义json的字符串。 所以,我有一些类似的东西 但这崩溃了 这是因为.c的输出是字符串,而不是JSON。如何让jq解析此字符串? 我最初的解决方案是使用sed将替换所有的逃生字符(,和),但凌乱的,我认为有内置的方式做到这一点? 谢谢! 编辑:另外,这里可用的jq版本是: 我想我可以根据需要更新它。 问题答案: j