我的应用程序从服务器获取JSON响应。响应字符串具有多个行和列。我需要在Java中打印。
这是我的JSON响应:
[
{
"name": "name2",
"id": "99",
"email": "ad@e.com"
},
{
"name": "zca",
"id": "96",
"email": "as2c2@d.d",
}
]
这是Java部分:
OkHttpClient client = new OkHttpClient();
String url = ServerConstants.BROWSE_URL;
//String url = "https://reqres.in/api/users?page=2";
Request request = new Request.Builder()
.url(url)
.build();
client.newCall(request).enqueue(new Callback()
{
@Override
public void onFailure(Call call, IOException e)
{
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException
{
if (response.isSuccessful())
{
final String myResponse = response.body().string();
//System.out.println(Arrays.asList(new BundleFunctions().MakeArrayListFormJSON(myResponse)));
bundle = new BundleFunctions().MakeBundleFromJSON(myResponse);
//System.out.println("this is size ------- "+bundle.size());
//System.out.println("this is response ------ "+myResponse);
Browse.this.runOnUiThread(new Runnable()
{
@Override
public void run()
{
tv.setText(myResponse);
Set<String> keys = bundle.keySet();
for(String key : keys)
{
Object o = bundle.get(key);
}
}
});
}
}
});
我需要在java中像这样的每个人上打印:
(人员号取决于数组索引FCFS)
人员1-名称:name2,id:99,电子邮件:ad@e.com
人员2-名称:zca,id:96,电子邮件:as2c2@d.d
请告诉我最简单的方法
答案 0 :(得分:1)
JSON非常清楚,在您的案例Array
对象中,Objects
是Person
的对象,创建Person
POJO类
人员
public class Person {
private String name;
private String id;
private String email;
// getters and setters
}
将上述json解析为List<Person>
,并根据需要打印每个Person
答案 1 :(得分:0)
您的JSON示例看起来不是多维数组。它是一个带有一堆对象的数组。如果这是针对Java的,为什么不使用jackson或GSon或类似的库来获取数组列表中的对象!您只需定义一个POJO对象,该对象的变量名与getter和setter匹配。