有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用Jackson的BeanPropertyFilter的java筛选器对象列表

我把objectList放在主类中。我正在使用SimpleBeanPropertyFilter。FilterOutalExcept of Jackson,但我没有得到过滤后的响应。有人能帮我吗,JSON回复如下

{
   "person":    [
            {
         "firstName": "Shyam",
         "age": 7,
         "addressDetails":          [
                        {
               "houseNo": "1236",
               "buildingNo": "T4",
               "address1": "sector 34",
               "address2": "near hospital",
               "city": "noida",
               "state": "UP",
               "pinCode": 1400021
            },
                        {
               "houseNo": "1236",
               "buildingNo": "T4",
               "address1": "sector 34",
               "address2": "near hospital",
               "city": "noida",
               "state": "UP",
               "pinCode": 1400021
            }
         ],
         "lastName": "singh"
      }
   ],
   "syncDate": 1441167154507,
   "nextPage": "http://localhost:8080/personData/Date=1437458428657"
}

共 (1) 个答案

  1. # 1 楼答案

    试试这个,有两个循环,第一个用于我获取个人数组数据,另一个用于j获取地址细节数据

    try {
            JSONObject responseJsonObject = new JSONObject(response);
            String syncDate=responseJsonObject.getString("syncDate");
            String nextPage=responseJsonObject.getString("nextPage");
    
            JSONArray jsonPerson_jsonarray = responseJsonObject
                    .getJSONArray("person");
            Log.i("get_array", jsonPerson_jsonarray + "");
            for (int i = 0; i < jsonPerson_jsonarray.length(); i++) {
                JSONObject personDetail = jsonPerson_jsonarray
                        .getJSONObject(i);
    
                String firstName=personDetail.getString("firstName");
                String age=personDetail.getString("age");
                String lastName=personDetail.getString("lastName");
                JSONArray addressDetails_jsonarray = personDetail
                        .getJSONArray("addressDetails");
    
                for (int j = 0; j < addressDetails_jsonarray.length(); j++) {
                    JSONObject addressDetails = addressDetails_jsonarray
                            .getJSONObject(j);
    
                    String houseNo=addressDetails.getString("houseNo");
                    String buildingNo=addressDetails.getString("buildingNo");
                    String address1=addressDetails.getString("address1");
                    String address2=addressDetails.getString("address2");
                    String city=addressDetails.getString("city");
                    String state=addressDetails.getString("state");
                    String pinCode=addressDetails.getString("pinCode");
                }
    
            }
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    

    用bean类getter setter方法或使用array替换for循环字符串,并获取所需的数据