【问题标题】:A JSONObject text must begin with '{' errorJSONObject 文本必须以“{”错误开头
【发布时间】:2013-10-16 09:01:16
【问题描述】:

我的这个 JSON 来自我们的一项 REST 服务:

[
    "{\"category_name\":[\"Industry Components\"],\"categoryId\":[1]}",
    "{\"category_name\":[\"Business Components\"],\"categoryId\":[2]}",
    "{\"category_name\":[\"Utilities\"],\"categoryId\":[3]}",
    "{\"category_name\":[\"Tools\"],\"categoryId\":[4]}
]

我正在使用 java-json.jar 来解析这个 JSON,这是我试图在 JSON 字符串之上传递的简单 sn-p:

JSONObject jsonObject = new JSONObject(jsonStr);

但我遇到了以下异常:

org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]

首先我认为这是因为 JSON 中的 [] 字符,我尝试替换如下:

String replacedStr = jsonStr.replaceAll("\\[", "").replaceAll("\\]", "")

但即便如此,我也遇到了同样的异常。谁能指导我知道我做错了什么?

【问题讨论】:

  • 看起来您缺少最后一行的结束引号。

标签: java json


【解决方案1】:

我想你不应该使用 JSONObject,而是 JSONArray

【讨论】:

    【解决方案2】:

    JSON 对象遵循以下结构:

    {
     "array": [
    {
        color: "red",
        value: "#f00"
    },
    {
        color: "green",
        value: "#0f0"
    }
    ]
    }
    

    JSON 数组遵循以下结构:

    [
     { "firstName":"John" , "lastName":"Doe" }, 
     { "firstName":"Anna" , "lastName":"Smith" }, 
     { "firstName":"Peter" , "lastName": "Jones" }
    ]
    

    【讨论】:

    • 如果你要在一个对象中嵌入一个数组,它需要看起来像{ "key": [ value(s) ] }
    • 我也无法控制我收到的输入(即 JSON)。 (而且我没有对你投反对票)
    • 感谢您的认可。
    【解决方案3】:

    改为

    JSONObject jsonObject = new JSONObject(jsonStr);
    

    使用

    JSONArray jsonArray = new JSONArray(jsonStr);
    

    可能会读到 Gson 是一个很好的用于解析和使用 json 的库

    【讨论】:

      【解决方案4】:

      如果你得到 JSONObject 文本必须以 '{' 开头的异常。 然后首先检查你传递给 JSONObject 构造函数的内容。

      您应该传递正确的 json.txt 文件。所以请确保您传递给 jsonobject 的内容。

      String request = FileUtils.readFileToString(new File("/home/achaure/Downloads/Amol/KountRestTest/Documents/request.txt"));
      
      JSONObject jsonObject = new JSONObject(request);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-15
        相关资源
        最近更新 更多