如何在java中打印类似字典的StringBuffer的值?

时间:2017-01-31 12:32:20

标签: java algorithm stringbuffer

我有这段代码:

StringBuffer sb = new StringBuffer();
try {
   BufferedReader reader = request.getReader();
   String line = null;
   while ((line = reader.readLine()) != null) {
      sb.append(line);
      System.out.println(line);
   }
} catch (Exception e) {
   e.printStackTrace();
}

行:

System.out.println(line);

在循环结束时在控制台中打印,如下所示:

{"signupname":"John","signuppassword":"1234","signupnickname":"Jonny",    
"signupdescription":"student","signupphoto":"(here photo url)"}

我怎样才能获得键的值?我想要这样的东西: 约翰 1234 强尼 学生 (这里是照片网址)

感谢帮助者:)

2 个答案:

答案 0 :(得分:3)

如果每一行都是完整的JSON对象。您可以使用Gson JSON解析器。

https://mvnrepository.com/artifact/com.google.code.gson/gson

StringBuffer sb = new StringBuffer();
try {
  BufferedReader reader = request.getReader();
  String line;
  Gson gson = new Gson();
  while ((line = reader.readLine()) != null) {
    Map map = gson.fromJson(line, Map.class);
    for(Object value : map.values()) {
      System.out.println(value);
    }
    sb.append(line);
    System.out.println(line);
  }
} catch (Exception e) {
  e.printStackTrace();
}

答案 1 :(得分:2)

格式看起来像JSON。如果这是真的,请使用您喜欢的任何JSON解析器并仅获取密钥。

E.g。 org.json:Maven Central的json。

https://github.com/stleary/JSON-java