如何转换此字符串以便我可以访问其中的所有元素?
How to convert this string so that I can access all the elements inside?
所以在下面我创建了一个请求,响应字符串如下所示:
{players=18.0, lobbies=[{id=1329.0, name=Desert Duel!, players=[{id=576.0, name=cipherxof, rank=0.0, host=true}, {id=596.0, name=FTP, rank=0.0, host=false}, {id=442.0, name=Keyboard+Mouse, rank=6.0, host=false}], maxPlayers=16.0, locked=false, currentGame=0.0, games=[[0.0, 17.0, 2.0]], comment=Come test this custom map!}, {id=1410.0, name=mix 24/7, players=[], maxPlayers=13.0, locked=false, currentGame=0.0, games=[[7.0, 7.0, 0.0], [3.0, 5.0, 2.0], [7.0, 2.0, 0.0], [2.0, 5.0, 2.0], [7.0, 10.0, 0.0], [4.0, 6.0, 0.0], [2.0, 3.0, 2.0], [12.0, 15.0, 2.0], [4.0, 7.0, 0.0], [7.0, 3.0, 0.0], [6.0, 10.0, 0.0], [5.0, 7.0, 0.0]], comment=EU Host. Have fun}, {id=1642.0, name=Harambe Mix, players=[{id=426.0, name=Dormant-Hero, rank=0.0, host=true}, {id=48.0, name=Solid-Freeman, rank=0.0, host=false}, {id=567.0, name=Boris, rank=0.0, host=false}, {id=740.0, name=Kojima, rank=0.0, host=false}, {id=632.0, name=Bassernic, rank=0.0, host=false}, {id=123.0, name=xXChronosXx, rank=0.0, host=false}, {id=301.0, name=dr.penguin, rank=0.0, host=false}, {id=621.0, name=EROS, rank=0.0, host=false}, {id=705.0, name=lacefrontt, rank=0.0, host=false}, {id=794.0, name=Stravaganzza, rank=0.0, host=false}, {id=58.0, name=A H M A D, rank=0.0, host=false}, {id=34.0, name=Bloody, rank=9.0, host=false}], maxPlayers=13.0, locked=false, currentGame=7.0, games=[[7.0, 1.0, 0.0], [1.0, 5.0, 0.0], [7.0, 2.0, 0.0], [5.0, 2.0, 0.0], [16.0, 10.0, 0.0], [4.0, 6.0, 0.0], [7.0, 3.0, 0.0], [2.0, 15.0, 2.0], [4.0, 7.0, 0.0], [7.0, 3.0, 0.0], [6.0, 10.0, 0.0], [5.0, 7.0, 0.0]], comment=EU Host. Have fun}, {id=1652.0, name=MIXX, players=[{id=530.0, name=Petronas, rank=0.0, host=true}, {id=553.0, name=Dormant-Hero2, rank=0.0, host=false}, {id=727.0, name=Becky, rank=0.0, host=false}], maxPlayers=12.0, locked=false, currentGame=0.0, games=[[15.0, 7.0, 0.0], [3.0, 5.0, 0.0], [5.0, 2.0, 2.0], [3.0, 7.0, 0.0], [2.0, 5.0, 2.0], [16.0, 3.0, 0.0], [3.0, 8.0, 2.0], [5.0, 10.0, 0.0], [2.0, 15.0, 2.0], [5.0, 12.0, 0.0], [3.0, 6.0, 0.0], [16.0, 2.0, 0.0], [2.0, 7.0, 0.0], [3.0, 1.0, 0.0], [5.0, 15.0, 0.0]], comment=}]}
我需要玩家和大部分大厅信息。但是我不太清楚我需要对这个字符串做些什么才能访问所有这些字符串。我能做什么?谢谢!
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
private void test_connect(){
//get request
Log.d("GetRequest","Start that GET baby");
final OkHttpClient client = new OkHttpClient();
final Request request = new Request.Builder().url("api url").build();
Thread thread = new Thread() {
@Override
public void run() {
try (Response response = client.newCall(request).execute()) {
String responseData = response.body().string();
JSONObject json = new JSONObject(responseData);
// HashMap<String, Object> mapped = new Gson().fromJson(json.getString("data"), HashMap.class);
final String owner = json.getString("data");
Log.d("ShoRequest", owner.toString());
} catch (Exception ex) {
// Any other exception
Log.d("diditworkexception", String.valueOf(ex));
}
}
};
thread.start();
}
bro 首先使用在线 JSON 查看器或 JSON 到 POJO 转换器检查您的 JSON 响应,如果他们可以轻松转换然后进入下一步使用 getter或 setter.
但是我已经检查了你的 JSON 他们给出了很多问题我也检查了 JSON 到 java 但是给出了一个例外所以请先检查并转换时间然后给出错误尝试了解它的一个 JSON 响应问题并且 android 无法处理 JSON 中的异常,因为想要纯 JSON 数据在 android.[= 中不起作用15=]
不要误会我的意思我已经检查过它的实际情况你的 JSON 数据是完全错误的
我附上了你的一些数据证明
请查看屏幕截图并正确理解我还附加了虚拟 jsondata 视图
https://jsonplaceholder.typicode.com/comments
参考请上站转换
jsonSchematoPojo
jsonformmater
或android工作室内置插件Dto Generator你可以找到任何jetbrains网站
所以在下面我创建了一个请求,响应字符串如下所示:
{players=18.0, lobbies=[{id=1329.0, name=Desert Duel!, players=[{id=576.0, name=cipherxof, rank=0.0, host=true}, {id=596.0, name=FTP, rank=0.0, host=false}, {id=442.0, name=Keyboard+Mouse, rank=6.0, host=false}], maxPlayers=16.0, locked=false, currentGame=0.0, games=[[0.0, 17.0, 2.0]], comment=Come test this custom map!}, {id=1410.0, name=mix 24/7, players=[], maxPlayers=13.0, locked=false, currentGame=0.0, games=[[7.0, 7.0, 0.0], [3.0, 5.0, 2.0], [7.0, 2.0, 0.0], [2.0, 5.0, 2.0], [7.0, 10.0, 0.0], [4.0, 6.0, 0.0], [2.0, 3.0, 2.0], [12.0, 15.0, 2.0], [4.0, 7.0, 0.0], [7.0, 3.0, 0.0], [6.0, 10.0, 0.0], [5.0, 7.0, 0.0]], comment=EU Host. Have fun}, {id=1642.0, name=Harambe Mix, players=[{id=426.0, name=Dormant-Hero, rank=0.0, host=true}, {id=48.0, name=Solid-Freeman, rank=0.0, host=false}, {id=567.0, name=Boris, rank=0.0, host=false}, {id=740.0, name=Kojima, rank=0.0, host=false}, {id=632.0, name=Bassernic, rank=0.0, host=false}, {id=123.0, name=xXChronosXx, rank=0.0, host=false}, {id=301.0, name=dr.penguin, rank=0.0, host=false}, {id=621.0, name=EROS, rank=0.0, host=false}, {id=705.0, name=lacefrontt, rank=0.0, host=false}, {id=794.0, name=Stravaganzza, rank=0.0, host=false}, {id=58.0, name=A H M A D, rank=0.0, host=false}, {id=34.0, name=Bloody, rank=9.0, host=false}], maxPlayers=13.0, locked=false, currentGame=7.0, games=[[7.0, 1.0, 0.0], [1.0, 5.0, 0.0], [7.0, 2.0, 0.0], [5.0, 2.0, 0.0], [16.0, 10.0, 0.0], [4.0, 6.0, 0.0], [7.0, 3.0, 0.0], [2.0, 15.0, 2.0], [4.0, 7.0, 0.0], [7.0, 3.0, 0.0], [6.0, 10.0, 0.0], [5.0, 7.0, 0.0]], comment=EU Host. Have fun}, {id=1652.0, name=MIXX, players=[{id=530.0, name=Petronas, rank=0.0, host=true}, {id=553.0, name=Dormant-Hero2, rank=0.0, host=false}, {id=727.0, name=Becky, rank=0.0, host=false}], maxPlayers=12.0, locked=false, currentGame=0.0, games=[[15.0, 7.0, 0.0], [3.0, 5.0, 0.0], [5.0, 2.0, 2.0], [3.0, 7.0, 0.0], [2.0, 5.0, 2.0], [16.0, 3.0, 0.0], [3.0, 8.0, 2.0], [5.0, 10.0, 0.0], [2.0, 15.0, 2.0], [5.0, 12.0, 0.0], [3.0, 6.0, 0.0], [16.0, 2.0, 0.0], [2.0, 7.0, 0.0], [3.0, 1.0, 0.0], [5.0, 15.0, 0.0]], comment=}]}
我需要玩家和大部分大厅信息。但是我不太清楚我需要对这个字符串做些什么才能访问所有这些字符串。我能做什么?谢谢!
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
private void test_connect(){
//get request
Log.d("GetRequest","Start that GET baby");
final OkHttpClient client = new OkHttpClient();
final Request request = new Request.Builder().url("api url").build();
Thread thread = new Thread() {
@Override
public void run() {
try (Response response = client.newCall(request).execute()) {
String responseData = response.body().string();
JSONObject json = new JSONObject(responseData);
// HashMap<String, Object> mapped = new Gson().fromJson(json.getString("data"), HashMap.class);
final String owner = json.getString("data");
Log.d("ShoRequest", owner.toString());
} catch (Exception ex) {
// Any other exception
Log.d("diditworkexception", String.valueOf(ex));
}
}
};
thread.start();
}
bro 首先使用在线 JSON 查看器或 JSON 到 POJO 转换器检查您的 JSON 响应,如果他们可以轻松转换然后进入下一步使用 getter或 setter.
但是我已经检查了你的 JSON 他们给出了很多问题我也检查了 JSON 到 java 但是给出了一个例外所以请先检查并转换时间然后给出错误尝试了解它的一个 JSON 响应问题并且 android 无法处理 JSON 中的异常,因为想要纯 JSON 数据在 android.[= 中不起作用15=]
不要误会我的意思我已经检查过它的实际情况你的 JSON 数据是完全错误的
我附上了你的一些数据证明
请查看屏幕截图并正确理解我还附加了虚拟 jsondata 视图
https://jsonplaceholder.typicode.com/comments
参考请上站转换
jsonSchematoPojo
jsonformmater
或android工作室内置插件Dto Generator你可以找到任何jetbrains网站