我对编程很新,而且我是一名实习开发Blackberry App的实习生。所以,如果我使用任何错误的术语,我会提前道歉。
我为特定用户的所有朋友发出HTTP请求,并以此JSON数组格式获取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}]}
我正在使用 org.json 解析库。我正在尝试创建一个包含所有用户朋友的Blackberry列表(如地址簿)。但我不确定如何使用此org.json库访问JSON数组。我想创建一个只包含所有朋友的full_names的Java数组。您将如何解析此响应以实现该目标?
谢谢
答案 0 :(得分:1)
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);}
}
答案 1 :(得分:-1)
你可以看看GSon这个库对json和java操作很有用。
List<Users> users= gson.fromJson(json, new TypeToken<List<Users>>(){}.getType());
这是API文档。 http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html