JSON数组解析和转换为Java类型
我对编程相当陌生,我是一名实习生,致力于开发黑莓应用程序。因此,如果我使用了任何错误的术语,我提前道歉 我向特定用户的所有朋友发出HTTP请求,并以这种JSON数组格式获得JSON响应 {“用户”:[{“用户名”:“jonbob”,“名”:“Jon”,“姓”:“Bob”,“电话”:“55555555”,“全名”:“Jon Bob”,“id”:1},{“用户名”:“joesmith”,“名”:“Joe”,“姓”:“Smith”,“电话”:“5555555555”,“全名”:“Joe Smith”,“id”:2}] 我正在使用org.json解析库。我正在尝试创建一个黑莓列表,其中包含用户的所有好友(如通讯簿)。但我不确定如何使用org.JSON库访问JSON数组。我想创建一个Java数组,其中只包含所有好友的全名。您将如何解析此响应以实现这一点JSON数组解析和转换为Java类型,json,org.json,arrays,Json,Org.json,Arrays,我对编程相当陌生,我是一名实习生,致力于开发黑莓应用程序。因此,如果我使用了任何错误的术语,我提前道歉 我向特定用户的所有朋友发出HTTP请求,并以这种JSON数组格式获得JSON响应 {“用户”:[{“用户名”:“jonbob”,“名”:“Jon”,“姓”:“Bob”,“电话”:“55555555”,“全名”:“Jon Bob”,“id”:1},{“用户名”:“joesmith”,“名”:“Joe”,“姓”:“Smith”,“电话”:“5555555555”,“全名”:“Joe Smith”,
谢谢您可以看看GSon这个库对于json和java操作非常强大
List<Users> users= gson.fromJson(json, new TypeToken<List<Users>>(){}.getType());
List users=gson.fromJson(json,new-TypeToken(){}.getType());
这是API文档。
导入java.util.array;
导入org.json.JSONArray;
导入org.json.JSONObject;
公开课Foo
{
公共静态void main(字符串[]args)引发异常
{
/*
{
“用户”:[
{
“用户名”:“jonbob”,
“名字”:“乔恩”,
“姓氏”:“鲍勃”,
“电话”:“555555”,
“全名”:“Jon Bob”,
“id”:1
},
{
“用户名”:“joesmith”,
“名字”:“乔”,
“姓氏”:“史密斯”,
“电话”:“555555”,
“全名”:“乔·史密斯”,
“id”:2
}
]
}
*/
字符串json=“{\'users\”:[{\'username\”:\'jonbob\,\'first\u name\:'Jon\,\'last\u name\:'Bob\,\'phone\:'55555555\,\'full\u name\':'Jon Bob\,'id\':1},{\'username\:'joesmith\,'first\u name\:'Joe\,'first\u\:'Joe\,'s\,'last\u\:'Smith Smith\,'s\,'Joe\,'phone\,'phone\,'s\:'Joe\,'55\,'Joe\,'s\,'s\:'s\,'552\';
JSONObject结果=新的JSONObject(json);
JSONArray users=result.getJSONArray(“用户”);
int size=users.length();
朋友[]朋友=新朋友[大小];
对于(int i=0;i
这将无法按建议工作,因为输入JSON数据结构与建议的目标Java结构不匹配。JSON对象!=Java列表。显示您尝试过的内容。解释您遇到问题的代码的特定部分。解释一下你的想法。解释它似乎在做什么。
import java.util.Arrays;
import org.json.JSONArray;
import org.json.JSONObject;
public class Foo
{
public static void main(String[] args) throws Exception
{
/*
{
"users": [
{
"username": "jonbob",
"first_name": "Jon",
"last_name": "Bob",
"phone": "5555555555",
"full_name": "Jon Bob",
"id": 1
},
{
"username": "joesmith",
"first_name": "Joe",
"last_name": "Smith",
"phone": "5555555555",
"full_name": "Joe Smith",
"id": 2
}
]
}
*/
String json = "{\"users\": [{\"username\": \"jonbob\", \"first_name\": \"Jon\", \"last_name\": \"Bob\", \"phone\": \"5555555555\", \"full_name\": \"Jon Bob\", \"id\": 1}, {\"username\": \"joesmith\", \"first_name\": \"Joe\", \"last_name\": \"Smith\", \"phone\": \"5555555555\", \"full_name\": \"Joe Smith\", \"id\": 2}]}";
JSONObject result = new JSONObject(json);
JSONArray users = result.getJSONArray("users");
int size = users.length();
Friend[] friends = new Friend[size];
for (int i = 0; i < size; i++)
{
JSONObject user = users.getJSONObject(i);
friends[i] = new Friend(user.getString("first_name"), user.getString("last_name"));
}
System.out.println(Arrays.toString(friends));
// output: [Jon Bob, Joe Smith]
}
}
class Friend
{
String firstName;
String lastName;
Friend (String f, String l) {firstName = f; lastName = l;}
@Override
public String toString() {return String.format("%s %s", firstName, lastName);}
}