【问题标题】:how to get list from json data in java如何从java中的json数据中获取列表
【发布时间】:2013-06-25 23:00:49
【问题描述】:

我的 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

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

【问题讨论】:

    标签: java json api list rest


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-15
      • 2012-04-17
      • 2020-11-25
      • 2018-11-29
      • 1970-01-01
      • 2016-10-24
      • 2022-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多