有 Java 编程相关的问题?

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

java将JSON解析到一个表中

[{"project_id":1,"date":"Undefined","project_code":"ea60f6190c","title":"test","description":"test","demo_url":null,"project_category_id":null,"client_id":null,"company_id":null,"staffs":"4,5,","budget":0,"timer_status":0,"timer_starting_timestamp":null,"total_time_spent":0,"progress_status":null,"timestamp_start":"1516874400","timestamp_end":"1516878000","project_status":1,"project_note":null,"institution_id":12,"project_state":2,"strata_manager":6,"site_contact":7,"place_of_service":18},{"project_id":2,"date":"27\/01\/2018","project_code":"b9197f9e0c","title":"test 2","description":"test 2","demo_url":null,"project_category_id":null,"client_id":null,"company_id":null,"staffs":"4,5,","budget":0,"timer_status":0,"timer_starting_timestamp":null,"total_time_spent":0,"progress_status":null,"timestamp_start":"1515484800","timestamp_end":"1515502800","project_status":1,"project_note":null,"institution_id":12,"project_state":0,"strata_manager":6,"site_contact":6,"place_of_service":18},{"project_id":3,"date":"Undefined","project_code":"1ed0450f71","title":"Sit quo sint necessitatibus","description":"Quia obcaecati nihil sit quo sint necessitatibus enim ut dicta in","demo_url":null,"project_category_id":null,"client_id":null,"company_id":null,"staffs":"","budget":0,"timer_status":0,"timer_starting_timestamp":null,"total_time_spent":0,"progress_status":null,"timestamp_start":null,"timestamp_end":null,"project_status":0,"project_note":null,"institution_id":12,"project_state":2,"strata_manager":5,"site_contact":6,"place_of_service":18},{"project_id":4,"date":null,"project_code":"49f120bade","title":"xczxc","description":"zcxzcxzcxz","demo_url":null,"project_category_id":null,"client_id":null,"company_id":null,"staffs":"","budget":0,"timer_status":0,"timer_starting_timestamp":null,"total_time_spent":0,"progress_status":null,"timestamp_start":null,"timestamp_end":null,"project_status":1,"project_note":null,"institution_id":12,"project_state":1,"strata_manager":5,"site_contact":8,"place_of_service":18},{"project_id":5,"date":null,"project_code":"d8d68134ee","title":"Freshwater, 65 Oliver Street, Build New House SP00001 QR123456","description":"bla bla bla","demo_url":null,"project_category_id":null,"client_id":null,"company_id":null,"staffs":"8,","budget":0,"timer_status":0,"timer_starting_timestamp":null,"total_time_spent":0,"progress_status":null,"timestamp_start":"1517533500","timestamp_end":"1517534400","project_status":1,"project_note":null,"institution_id":12,"project_state":1,"strata_manager":5,"site_contact":7,"place_of_service":0}]

我如何将这个JSON解析成一个只选择其中几个部分的表?我正在使用Java通过Android Studio中的URL将其传递给一个移动应用程序


共 (2) 个答案

  1. # 1 楼答案

    只需遵循此操作并更新我的DTO类,在您的表或任何其他地方填充此数组

      public class MainActivity extends AppCompatActivity {
    
    String data = "[{\"project_id\":1,\"date\":\"Undefined\",\"project_code\":\"ea60f6190c\",\"title\":\"test\",\"description\":\"test\",\"demo_url\":null,\"project_category_id\":null,\"client_id\":null,\"company_id\":null,\"staffs\":\"4,5,\",\"budget\":0,\"timer_status\":0,\"timer_starting_timestamp\":null,\"total_time_spent\":0,\"progress_status\":null,\"timestamp_start\":\"1516874400\",\"timestamp_end\":\"1516878000\",\"project_status\":1,\"project_note\":null,\"institution_id\":12,\"project_state\":2,\"strata_manager\":6,\"site_contact\":7,\"place_of_service\":18},{\"project_id\":2,\"date\":\"27\\/01\\/2018\",\"project_code\":\"b9197f9e0c\",\"title\":\"test 2\",\"description\":\"test 2\",\"demo_url\":null,\"project_category_id\":null,\"client_id\":null,\"company_id\":null,\"staffs\":\"4,5,\",\"budget\":0,\"timer_status\":0,\"timer_starting_timestamp\":null,\"total_time_spent\":0,\"progress_status\":null,\"timestamp_start\":\"1515484800\",\"timestamp_end\":\"1515502800\",\"project_status\":1,\"project_note\":null,\"institution_id\":12,\"project_state\":0,\"strata_manager\":6,\"site_contact\":6,\"place_of_service\":18},{\"project_id\":3,\"date\":\"Undefined\",\"project_code\":\"1ed0450f71\",\"title\":\"Sit quo sint necessitatibus\",\"description\":\"Quia obcaecati nihil sit quo sint necessitatibus enim ut dicta in\",\"demo_url\":null,\"project_category_id\":null,\"client_id\":null,\"company_id\":null,\"staffs\":\"\",\"budget\":0,\"timer_status\":0,\"timer_starting_timestamp\":null,\"total_time_spent\":0,\"progress_status\":null,\"timestamp_start\":null,\"timestamp_end\":null,\"project_status\":0,\"project_note\":null,\"institution_id\":12,\"project_state\":2,\"strata_manager\":5,\"site_contact\":6,\"place_of_service\":18},{\"project_id\":4,\"date\":null,\"project_code\":\"49f120bade\",\"title\":\"xczxc\",\"description\":\"zcxzcxzcxz\",\"demo_url\":null,\"project_category_id\":null,\"client_id\":null,\"company_id\":null,\"staffs\":\"\",\"budget\":0,\"timer_status\":0,\"timer_starting_timestamp\":null,\"total_time_spent\":0,\"progress_status\":null,\"timestamp_start\":null,\"timestamp_end\":null,\"project_status\":1,\"project_note\":null,\"institution_id\":12,\"project_state\":1,\"strata_manager\":5,\"site_contact\":8,\"place_of_service\":18},{\"project_id\":5,\"date\":null,\"project_code\":\"d8d68134ee\",\"title\":\"Freshwater, 65 Oliver Street, Build New House SP00001 QR123456\",\"description\":\"bla bla bla\",\"demo_url\":null,\"project_category_id\":null,\"client_id\":null,\"company_id\":null,\"staffs\":\"8,\",\"budget\":0,\"timer_status\":0,\"timer_starting_timestamp\":null,\"total_time_spent\":0,\"progress_status\":null,\"timestamp_start\":\"1517533500\",\"timestamp_end\":\"1517534400\",\"project_status\":1,\"project_note\":null,\"institution_id\":12,\"project_state\":1,\"strata_manager\":5,\"site_contact\":7,\"place_of_service\":0}]\n";
    
    ArrayList<MyDTO> myArray = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        parseData(data);
    }
    
    private void parseData(String response) {
    
    
        try {
            JSONArray jsonArray=new JSONArray(response);
            for (int i=0;i<jsonArray.length();i++){
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                MyDTO myDTO = new MyDTO();
                myDTO.setProjectId(Integer.parseInt(jsonObject.getString("project_id")));
                myDTO.setProjectDate(  jsonObject.getString("date"));
                myDTO.setProjectCode(jsonObject.getString("project_code"));
                myDTO.setTitle(jsonObject.getString("title"));
    
                myArray.add(myDTO);
    
    
            }
    
        }catch (JSONException je){
    
        }
    }
    }
    

    DTO类

        public class MyDTO {
    
    private int projectId ;
    private String projectDate;
    private String projectCode;
    private String title;
    
    
    public int getProjectId() {
        return projectId;
    }
    
    public void setProjectId(int projectId) {
        this.projectId=projectId;
    }
    
    public String getProjectDate() {
        return projectDate;
    }
    
    public void setProjectDate(String projectDate) {
        this.projectDate=projectDate;
    }
    
    public String getProjectCode() {
        return projectCode;
    }
    
    public void setProjectCode(String projectCode) {
        this.projectCode=projectCode;
    }
    
    public String getTitle() {
        return title;
    }
    
    public void setTitle(String title) {
        this.title=title;
    }
     }
    
  2. # 2 楼答案

    json代码是一个json数组,包含一些对象。要分析每个元素,您应该执行以下操作:

       try{
        JSONArray jsonArray = new JSONArray(yourJsonString);
        JSONObject jsonObject;
        for(i=0;i<jsonArray.length();i++) {
             jsonObject = jsonArray.getJSONObject(i);
            //here you can parse whatever section you want
            String projectID = jsonObject.getString("project_id");
            String date = jsonObject.getString("date");
            //code for filling row number i
            }
        }
        catch (JSONException e) {
            e.printStackTrace();
        }