gpt4 book ai didi

java - Java中的文本转Json(文本中的列表)

转载 作者:行者123 更新时间:2023-12-01 19:54:08 25 4
gpt4 key购买 nike

我调用的 API 返回以下文本:

{"identified_faces_names": "[\"omar\", \"elhoussinep\"]"}

当我将此文本传递给 JSONParse 来解析它时,它给出了以下异常:

Exception in thread "main" Unexpected character (o) at position 0.

用于将文本解析为json的代码:

String s = new String("{\"identified_faces_names\": \" [\"omar\",\"elhoussinep\"]\"}");
JSONParser parser = new JSONParser();
Object obj = parser.parse(s);

最佳答案

您确实想将 ["omar", "elhoussinep"] 用引号引起来吗?这肯定是一个包含字符串引号的字符串值吗?或者它是一个字符串数组?

如果 identified_faces_names 旨在成为字符串数组,则有效的 JSON 为:

{
"identified_faces_names": [
"omar",
"elhoussinep"
]
}

这是可解析的,没有错误,如下所示:

String s = new String("{\"identified_faces_names\": [\"omar\",\"elhoussinep\"]}");
JSONParser parser = new JSONParser();
Object obj = parser.parse(s);

如果identified_faces_names旨在成为包含引号的字符串,则必须对字符串内的引号进行转义。有效的 JSON 是:

{
"identified_faces_names": "[\\\"omar\\\",\\\"elhoussinep\\\"]"
}

这是可解析的,没有错误,如下所示:

String s = new String("{\"identified_faces_names\": \" [\\\"omar\\\",\\\"elhoussinep\\\"]\"}");
JSONParser parser = new JSONParser();
Object obj = parser.parse(s);

因此,总而言之,我建议重新访问 JSON 以确定它是字符串数组还是包含引号的字符串,如果是后者,则必须转义这些引号。

FWIW,您可以使用JSONLint检查 JSON 是否有效。使用此命令,您可以看到原始 JSON ({"identified_faces_names": "["omar","elhoussinep"]"}) 无效,并且第一个无效字符是 ""omar" 中的 o" 被视为无效,因为它后面的 "[" 被视为完整的字符串。

关于java - Java中的文本转Json(文本中的列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50178549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com