【发布时间】: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 或 GSON 的默认 JSONObject,Google 的库 github.com/google/gson
-
感谢您的所有回答,我是 Android 新手,我对 Gson 或任何其他做同样事情的库一无所知,再次感谢并抱歉重复跨度>