【问题标题】:Correct way to split string given by server [duplicate]拆分服务器给出的字符串的正确方法[重复]
【发布时间】:2017-12-13 15:14:24
【问题描述】:

我收到来自服务器的 String 响应:

[{"name":"Abe","msg":"Hello, this is my message","age":33,"height":1.75},{"name":"Ben","msg":"I love play guitar :) ","age":18,"height":1.8} ...

我必须将此回复安排在ArrayList<MyUser>

目前我正在使用以下代码:

String s[] = myresponse.split("\n|\\W");
String temp = "";
for(String z : s) {
   temp += z + "\n";
}

s = temp.split("\n+");
temp = "";
for(String z : s) {
   temp += z + " ";
}
Log.d("MyActivity", temp);

但这有点棘手,我丢失了味精“列”中的所有非单词字符,我应该将其保存为String,以及高度“列”中的.,这是我需要的在MyUser 类中保存为float 值。

那么,有没有一种最简单的方法可以使用 .split 方法和正则表达式来拆分这个字符串,或者我应该编写自己的方法来做到这一点?谢谢。

我的用户

public class MyUser {
    private String name, msg;
    private int age;
    private float height;


    public Friends(String name, String msg, int age, float height) {
        this.name = username;
        this.msg = msg;
        this.age = age;
        this.height = height;
    }
}

【问题讨论】:

  • 字符串实际上看起来像有效的 JSON。您应该考虑使用 JSON 解析器进行反序列化,例如GSON 或杰克逊。
  • 使用 Android 或 GS​​ON 的默认 JSONObject,Google 的库 github.com/google/gson
  • 感谢您的所有回答,我是 Android 新手,我对 Gson 或任何其他做同样事情的库一无所知,再次感谢并抱歉重复跨度>

标签: java android regex


【解决方案1】:

你可以使用Gson来实现这个

public List<MyUser> getList(String stringJson){
  List<MyUser> myUser = null;
  Gson gson = new Gson();
  Type type = new TypeToken<List<MyUser>>() {}.getType();
  myUser = gson.fromJson(stringJson, type);
  return myUser;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多