【问题标题】:Writing json array objects from database从数据库写入 json 数组对象
【发布时间】:2019-06-01 19:41:07
【问题描述】:

我想在 java 中使用以下类型的嵌套 json 数组。请帮我解决这个问题。 这里我的复合主键是 db_key & parent_key

{
    "Message": "Successfully done",
    "statuscode ": 200,
    "employeeList ": [
        "R.0030238.001": [{
                "last_changed_date": "2018-10-31 22:41:48.0",
                "allocation_end_date": "2018-10-31",
                "project_id": "R.0030238.001",
                "allocation_start_date": "2018-10-01",
                "parent_key": "005056B09B381ED8B6A1DD79951F40CB",
                "db_key": "005056AC0ABA1ED8B2AE6E73DFFF80D1",
                "username": "VIJAYK11",
                "emp_id": "127454"
            },
            {
                "last_changed_date": "2018-10-31 19:14:26.0",
                "allocation_end_date": "2018-10-31",
                "project_id": "R.0030238.001",
                "allocation_start_date": "2018-10-01",
                "parent_key": "005056AC0DB01ED8B1A267DE3CCAA0CF",
                "db_key": "005056AC0DB01ED8B1A267DE3CCA80CF",

            "username": "KISHORD4",
            "emp_id": "129208"
        },
        {
            "last_changed_date": "2018-10-31 18:50:23.0",
            "allocation_end_date": "2018-12-31",
            "project_id": "R.0030238.001",
            "allocation_start_date": "2018-10-01",
            "parent_key": "005056AC0DB01ED8B1A267DE3CCBA0CF",
            "db_key": "005056AC0DB01ED8B1A267DE3CCB80CF",
            "username": "VARSHAM2",
            "emp_id": "133079"
        },
        {
            "last_changed_date": "2018-10-31 19:07:48.0",
            "allocation_end_date": "2018-12-31",
            "project_id": "R.0030238.001",
            "allocation_start_date": "2018-10-01",
            "parent_key": "005056AC0DB01ED8B1A267DE3CCCA0CF",
            "db_key": "005056AC0DB01ED8B1A267DE3CCC80CF",
            "username": "DEEPAKR3",
            "emp_id": "122874"
        },
        {
            "last_changed_date": "2018-10-31 19:11:18.0",
            "allocation_end_date": "2018-10-31",
            "project_id": "R.0030238.001",
            "allocation_start_date": "2018-10-01",
            "parent_key": "005056AC0DB01ED8B1A267DE3CCDA0CF",
            "db_key": "005056AC0DB01ED8B1A267DE3CCD80CF",

            "username": "ROYO",
            "emp_id": "127003"
        },
        {
            "last_changed_date": "2018-10-31 22:44:06.0",
            "allocation_end_date": "2018-12-31",
            "project_id": "R.0030238.001",
            "allocation_start_date": "2018-12-01",
            "parent_key": "005056B09B381ED8B79F6701675900CC",
            "db_key": "005056B09B381ED8B79F52D90FA5E0CC",
            "username": "ABHIJEETB4",
            "emp_id": "126933"
        },
        {
            "last_changed_date": "2018-10-31 22:45:12.0",
            "allocation_end_date": "2018-12-30",
            "project_id": "R.0030238.001",
            "allocation_start_date": "2018-10-31",
            "parent_key": "005056B09B381ED8B79F5F791EE140CC",
            "db_key": "005056B09B381ED8B79F5F791EE120CC",
            "username": "MAHESHA2",
            "emp_id": "120049"
        },
        {
            "last_changed_date": "2018-10-31 22:45:12.0",
            "allocation_end_date": "2018-12-30",
            "project_id": "R.0030238.001",
            "allocation_start_date": "2018-10-31",
            "parent_key": "005056B09B381ED8B79F6701675900CC",
            "db_key": "005056B09B381ED8B79F5F791EE120CC",
            "username": "MOHIK",
            "emp_id": "139365"
        }
    ]


    "R.0030238.002": [{
        "last_changed_date": "2018-10-31 22:45:12.0",
        "allocation_end_date": "2018-12-30",
        "project_id": "R.0030238.002",
        "allocation_start_date": "2018-10-31",
        "parent_key": "005056B09B381ED8B79F6701675900CD",
        "db_key": "005056B09B381ED8B79F5F791EE120CC",
        "username": "MOHIK",
        "emp_id": "139365"
    }]

    "R.0030238.003": [{
        "last_changed_date": "2018-10-31 22:45:12.0",
        "allocation_end_date": "2018-12-26",
        "project_id": "R.0030238.003",
        "allocation_start_date": "2018-10-31",
        "parent_key": "005056B09B381ED8B79F6701675900CF",
        "db_key": "005056B09B381ED8B79F5F791EE120CC",
        "username": "MOHIK",
        "emp_id": "139365"
    }]
]

}

【问题讨论】:

  • 使用 GSON aur org.json,请分享您所做的任何尝试?
  • 不,这不是代码编写服务。开始自己编码,当您遇到与代码相关的问题时再回来
  • 您的问题质量很低,但我猜您需要 Java 中的 JSON 库,所以 here 是来自 Google 的一个很好的解决方案。
  • 我在访问项目 id attr 时遇到问题。我想按 proj id 排序..根据 proj_id 列出所有员工

标签: java json spring-boot


【解决方案1】:

我没试过但是这样你可以尝试在java中转换json数据

import com.google.gson.Gson; 
import com.google.gson.GsonBuilder;  

class GsonData { 
       private String Message; 
       private String statuscode; 
    private ArrayList<ArrayList<Map<String,String>>> employeelist;
     //setters and getters and to string 
    }

    public class GsonMaker { 
       public static void main(String[] args) { 
          String jsonString = your above gson string; 


          GsonData gs = new Gson().fromJson(jsonString, GsonData.class);
         System.out.println(gs.Message); 

       } 
    } 

否则你可以使用 org.json 来访问这样的数据

JSONObject js=new JSONObject("yourjsonstring"); 

并相应地访问更多属性

【讨论】:

    【解决方案2】:

    我已经尝试过了。但我得到了最后一条记录。并非所有记录都符合 project_id。

                for(int i=0;i<ja.length();i++){
                    String proj_id = ja.getJSONObject(i).getString("project_id");
    
                    Set<Object> sets = new HashSet<>(); 
                    if (!(sets.contains(proj_id))) {
                       sets.add(proj_id);                       
                    }                   
    
                    Iterator<Object> itr=sets.iterator();  
    
                    while(itr.hasNext())  {                                 
                        JSONArray jarr=new JSONArray();
                         for (int j=0;j<sets.size();j++) {
                             System.out.println("i="+i);
                             System.out.println("j="+j);
    
                            List emplist=empservice.getEmpByProjId(proj_id);
                            JSONObject finalobj=new JSONObject();           
    
                            finalobj.put("project_id", proj_id);  
                            finalobj.put("emp-proj", emplist);
                            jarr.put(finalobj);
    
                            itr.next();
                          } 
                        jsonObject.put("data", jarr);
                        System.out.println("list of jarr obj : "+jarr);         
                    }
    
                }                                                                                       //for
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-25
      • 2017-01-17
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      • 2014-12-16
      • 1970-01-01
      相关资源
      最近更新 更多