Java中的文本到Json(以文本形式列出)
我调用的API返回了以下文本:Java中的文本到Json(以文本形式列出),java,json,Java,Json,我调用的API返回了以下文本: {"identified_faces_names": "[\"omar\", \"elhoussinep\"]"} 当我将此文本传递给JSONParse进行解析时,它会给出以下异常: 线程“main”中位置0处的意外字符(o)出现异常 用于将文本解析为json的代码: String s = new String("{\"identified_faces_names\": \" [\"omar\",\"elhoussinep\"]\"}"); JSONParser
{"identified_faces_names": "[\"omar\", \"elhoussinep\"]"}
当我将此文本传递给JSONParse进行解析时,它会给出以下异常:
线程“main”中位置0处的意外字符(o)出现异常
用于将文本解析为json的代码:
String s = new String("{\"identified_faces_names\": \" [\"omar\",\"elhoussinep\"]\"}");
JSONParser parser = new JSONParser();
Object obj = parser.parse(s);
你真的想用引号把
[“omar”,“elhoussinep”]
括起来吗?这一定是一个包含字符串引号的字符串值吗?或者它是一个字符串数组
如果identified\u faces\u names
是一个字符串数组,那么有效的JSON是:
{
"identified_faces_names": [
"omar",
"elhoussinep"
]
}
{
"identified_faces_names": "[\\\"omar\\\",\\\"elhoussinep\\\"]"
}
这是可以解析的,没有错误,如下所示:
String s = new String("{\"identified_faces_names\": [\"omar\",\"elhoussinep\"]}");
JSONParser parser = new JSONParser();
Object obj = parser.parse(s);
String s = new String("{\"identified_faces_names\": \" [\\\"omar\\\",\\\"elhoussinep\\\"]\"}");
JSONParser parser = new JSONParser();
Object obj = parser.parse(s);
如果identified\u faces\u names
是包含引号的字符串,则必须转义字符串中的引号。有效的JSON是:
{
"identified_faces_names": [
"omar",
"elhoussinep"
]
}
{
"identified_faces_names": "[\\\"omar\\\",\\\"elhoussinep\\\"]"
}
这是可以解析的,没有错误,如下所示:
String s = new String("{\"identified_faces_names\": [\"omar\",\"elhoussinep\"]}");
JSONParser parser = new JSONParser();
Object obj = parser.parse(s);
String s = new String("{\"identified_faces_names\": \" [\\\"omar\\\",\\\"elhoussinep\\\"]\"}");
JSONParser parser = new JSONParser();
Object obj = parser.parse(s);
因此,总而言之,我建议重新访问JSON以确定它是字符串数组还是包含引号的字符串,如果是后者,则必须转义这些引号
FWIW,您可以使用来检查JSON是否有效。使用此代码,您可以看到原始JSON(
{“已识别的面名称”:“[“omar”,“elhoussinep”]}
)无效,并且第一个无效字符是“omar”
中的“o”
,这被视为无效,因为它紧跟在“[”
这被认为是一个完整的字符串。您确定要将[“omar”,“elhoussinep”]
括在引号中吗?这肯定是一个包含字符串引号的字符串值吗?还是一个字符串数组
如果identified\u faces\u names
是一个字符串数组,那么有效的JSON是:
{
"identified_faces_names": [
"omar",
"elhoussinep"
]
}
{
"identified_faces_names": "[\\\"omar\\\",\\\"elhoussinep\\\"]"
}
这是可以解析的,没有错误,如下所示:
String s = new String("{\"identified_faces_names\": [\"omar\",\"elhoussinep\"]}");
JSONParser parser = new JSONParser();
Object obj = parser.parse(s);
String s = new String("{\"identified_faces_names\": \" [\\\"omar\\\",\\\"elhoussinep\\\"]\"}");
JSONParser parser = new JSONParser();
Object obj = parser.parse(s);
如果identified\u faces\u names
是包含引号的字符串,则必须转义字符串中的引号。有效的JSON为:
{
"identified_faces_names": [
"omar",
"elhoussinep"
]
}
{
"identified_faces_names": "[\\\"omar\\\",\\\"elhoussinep\\\"]"
}
这是可以解析的,没有错误,如下所示:
String s = new String("{\"identified_faces_names\": [\"omar\",\"elhoussinep\"]}");
JSONParser parser = new JSONParser();
Object obj = parser.parse(s);
String s = new String("{\"identified_faces_names\": \" [\\\"omar\\\",\\\"elhoussinep\\\"]\"}");
JSONParser parser = new JSONParser();
Object obj = parser.parse(s);
因此,总而言之,我建议重新访问JSON以确定它是字符串数组还是包含引号的字符串,如果是后者,则必须转义这些引号
FWIW,您可以使用来检查JSON是否有效。使用此选项,您可以看到您的原始JSON(
{“identified”\u faces\u names:“[“omar”,“elhoussinep”]”}
)无效,并且第一个无效字符是“omar”
中的“o”
,因为它紧跟在“[”之后,因此被视为无效
这被认为是一个完整的字符串。使用这个字符串{“已识别的面”名称:[\“omar\”,\“elhoussinep\”]}。它是正确的,将被解析。使用这个字符串{“已识别的面”名称:[\“omar\”,\“elhoussinep\”}。它是正确的,将被解析。另一方面,它的工作原理是如何转换[“omar”,“elhoussinep”]
to a list?JSONObject obj=(JSONObject)parser.parse(s);JSONArray数组=(JSONArray)obj.get(“identified_faces_names”);
。“JSONArray
是一个列表
。另一方面,它工作原理是如何将[“omar”,“elhoussinep”]
转换为列表?JSONObject=(JSONObject)parser.parse(s);JSONArray数组=(JSONArray)obj.get(“已识别的面名称”)
。`JSONArray
是一个列表。