0

我的 Json 数据:

{'ID':1,'FirstName':'x','LastName':'y','Company':'x','EMail':'x','PhoneNo':'x'}

我的 Java 代码:

public static void main(String[] args) throws IOException {
    String json = getJSON().substring(getJSON().indexOf("[")+1,getJSON().indexOf("]"));
    Users user = new Gson().fromJson(json, Users.class);
    WriteLine("["+user.getID()+"]"+" "+user.getFirstName()+" "+user.getLastName()+" "+user.getCompany()+" "+user.getEMail()+" "+user.getPhoneNo());
}

static void WriteLine(String text){
    System.out.print(text);
}

static String getJSON() throws IOException
{
    URL url = new URL("http://localhost:51679/api/User");
    HttpURLConnection connection = (HttpURLConnection)url.openConnection();

    BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    StringBuilder sBuilder = new StringBuilder();
    String line;
    while((line = reader.readLine()) != null){
        sBuilder.append(line);
    }
    reader.close();
    connection.disconnect();
    return sBuilder.toString();
}

但是我的 json 数据因为这些变成:

{'ID':1,'FirstName':'x','LastName':'x','Company':'x','EMail':'x','PhoneNo':'x'},{'ID':2,'FirstName':'y','LastName':'y','Company':'y','EMail':'x','PhoneNo':'y'}

我有一个错误:原因:com.google.gson.stream.MalformedJsonException:使用 JsonReader.setLenient(true) 在第 1 行第 136 列接受格式错误的 JSON

你能帮助我吗?对不起,我的英语不好 :(

4

1 回答 1

0

仔细阅读错误信息。该输入不是有效的 JSON,这正是消息告诉您的内容。字符串和键必须用双引号括起来,而不是单引号:

{"ID":1,"FirstName":"x","LastName":"y","Company":"x","EMail":"x","PhoneNo":"x"}

使用JSON 验证器进行简单检查会告诉您相同的结果。或者 - 再次,正如错误消息方便地告诉您的那样 - 您可以将阅读器设置为宽容JsonReader.setLenient(true),以希望接受格式错误的 JSON 作为输入。

于 2013-06-25T23:03:10.890 回答