【问题标题】:Unexpected character (A) at position 0位置 0 的意外字符 (A)
【发布时间】:2016-08-26 11:28:21
【问题描述】:

这是我来自 mysql 服务器的 json 文件。

注意:/var/www/html/studyabroad/university.php 第 18 行中的数组到字符串转换

Array[{"code":"100654","name":"Alabama A & M University",
"type":"public","city":"Normal","state":"AL",
"logo_url":"http:\/\/www.logosurfer.com\/sites\/default\/files\/university-of-california-logo_0.png",
"percentage":"53"},

{"code":"100706","name":"University of Alabama in Huntsville",
"type":"public","city":"Huntsville","state":"AL",
"logo_url":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/b\/b2\/Ashford_University_Full_Color_Logo.png",
"percentage":"82"}]

我的解析代码是

JSONParser parser = new JSONParser();

    try{

        BufferedReader bfReader = new BufferedReader(new InputStreamReader(is));
        bfReader.readLine();
        StringBuilder builder = new StringBuilder();
        String line = null;

        while((line = bfReader.readLine())!= null){
            builder.append(line).append("\n");
        }

        line = builder.toString();
        Object obj = parser.parse(line);

        return obj;

    }catch(IOException ex){
        ex.printStackTrace();
    }catch(ParseException ex){
        ex.printStackTrace();

    }finally{
        try{
            is.close();
        }catch (IOException ex){
            //later handler it.
            ex.printStackTrace();
        }
    }

在我的服务器端将结果转换为我使用的 json 格式

json_encode($data);

错误的原因是json数据的格式。 Array[{..},{..}] 而不是 [{...},{..}]。 有什么办法可以将json数据的格式从上面更改为 [{...}, {...}] 或者我如何解析给定的格式?

【问题讨论】:

  • 请详细说明这个区别 [{..},{..}] 而不是 [{...},{..}]。
  • 我认为他的意思是每次有一个 JSONArray 时,它都会在 [ ] 之前附加 Array

标签: java android json io


【解决方案1】:

为什么不直接使用 Substring 来获取 Array 部分之后的值:

line = builder.toString().substring(5);

【讨论】:

  • 我假设没有内部数组...如果有请指定以便我调整逻辑:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 2015-03-23
  • 2018-12-02
相关资源
最近更新 更多