0

我对编程很陌生,我是一名实习生,致力于开发黑莓应用程序。因此,如果我使用任何错误的术语,我提前道歉。

我为特定用户的所有朋友发出 HTTP 请求,并以这种 JSON 数组格式获得 JSON 响应。

{“用户”:[{“用户名”:“乔恩鲍勃”,“名字”:“乔恩”,“姓氏”:“鲍勃”,“电话”:“5555555555”,“全名”:“乔恩鲍勃”,“id “:1},{“用户名”:“乔史密斯”,“名字”:“乔”,“姓氏”:“史密斯”,“电话”:“5555555555”,“全名”:“乔史密斯”,“id” :2}]}

我正在使用org.json解析库。我正在尝试创建一个包含所有用户朋友的黑莓列表(如通讯簿)。但我不确定如何使用这个 org.json 库访问 JSON 数组。我想创建一个只有所有朋友的全名的 Java 数组。您将如何解析此响应以完成此操作?

谢谢

4

2 回答 2

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);}
}
于 2011-07-13T20:29:19.127 回答
-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

于 2011-07-13T20:09:11.040 回答