Java Long不能转换为字符串
我想知道为什么在以下代码中出现以下异常:Java Long不能转换为字符串,java,core,Java,Core,我想知道为什么在以下代码中出现以下异常: public class AAA { public static void main(String [] args) throws ParseException{ AAA a= new AAA(); } public AAA() throws ParseException{ String str = "{\"a\":1,\"b\":\"2\",\"c\":\"3\"}"; JS
public class AAA {
public static void main(String [] args) throws ParseException{
AAA a= new AAA();
}
public AAA() throws ParseException{
String str = "{\"a\":1,\"b\":\"2\",\"c\":\"3\"}";
JSONParser content_parser = new JSONParser();
Object objMessage_Content = content_parser.parse(str);
System.out.println(objMessage_Content);
JSONObject jsonObjectMessage_Content = (JSONObject) objMessage_Content;
System.out.println(jsonObjectMessage_Content);
String a = (String) jsonObjectMessage_Content.get("a");
String b = (String) jsonObjectMessage_Content.get("b");
String c = (String) jsonObjectMessage_Content.get("c");
String d = (String) jsonObjectMessage_Content.get("d");
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
我得到一个例外:
Exception in thread "main" java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
at test.AAA.<init>(AAA.java:39)
at test.AAA.main(AAA.java:11)
线程“main”java.lang.ClassCastException中的异常:java.lang.Long不能转换为java.lang.String
AAA.(AAA.java:39)
at test.AAA.main(AAA.java:11)
看起来键“a”的值是数字-
\“a\”:1
。
因此,jsonObjectMessage\u Content.get(“a”)
返回一个长的
,不能转换为字符串
你可以用
String a = String.valueOf(jsonObjectMessage_Content.get("a"));
您可以类似地替换所有4个赋值,以处理其他键具有非字符串值的情况。看起来键“a”的值是数字-\“a\”:1
。
因此,jsonObjectMessage\u Content.get(“a”)
返回一个长的
,不能转换为字符串
你可以用
String a = String.valueOf(jsonObjectMessage_Content.get("a"));
您可以类似地替换所有4个赋值,以处理其他键具有非字符串值的情况。您还可以将其替换为:
String a = jsonObjectMessage_Content.get("a")+"";
String b = jsonObjectMessage_Content.get("b")+"";
String c = jsonObjectMessage_Content.get("c")+"";
String d = jsonObjectMessage_Content.get("d")+"";
只需快速~您还可以将其替换为:
String a = jsonObjectMessage_Content.get("a")+"";
String b = jsonObjectMessage_Content.get("b")+"";
String c = jsonObjectMessage_Content.get("c")+"";
String d = jsonObjectMessage_Content.get("d")+"";
simply fast ~您在定义json字符串时提到了一个整数类型,并且您需要一个字符串,这就是您出现错误的原因。您可以通过两种方式对其进行更正,一种是在json字符串中以字符串形式提及数字,另一种是在从jsonObject获取数据时使用整数。您在定义json字符串时使用整数类型,而使用字符串,这可能是重复的,这就是出现错误的原因。您可以通过两种方式更正它,或者在json字符串中以字符串形式提及这些数字,或者在从jsonObject获取数据时需要一个整数