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”,

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

我向特定用户的所有朋友发出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数组,其中只包含所有好友的全名。您将如何解析此响应以实现这一点


谢谢

您可以看看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);}
}