0

我正在尝试为以下 Json 代码创建一个列表视图

{"ImageList" :[

 {
  "ENO":"87",
  "ENAME" : "john",
   "EJOB":"clerk",
  },{
    "ENO":"21",
    "ENAME" : "Abdul",
    "EJOB":"Manager",
  } ]
}

这个 DataControl 程序 这个 DataControl 被另一个类调用

 Runnable mcsJob = new Runnable(){
   public void run(){ 
   try {

           CustomAPI customApi = mobileBackend.getServiceProxyCustomApi();            
           MCSRequest request = new MCSRequest(mobileBackend.getMbeConfiguration());
           request.setConnectionName(mafConnection);            
           request.setRequestURI(requestURI);            
           request.setHttpMethod(httpMethod);            
           request.setPayload(payload==null?"":payload);
           request.setRetryLimit(0);
           HashMap<String,String> headers = new HashMap<String,String>();

           if(httpHeaders!=null)
           {
               headers.putAll(httpHeaders);
           }

           request.setHttpHeaders(headers);  
           MCSResponse response = customApi.sendForStringResponse(request);
           String jsonResponse = (String) response.getMessage(); 
           setEmployeeSearchResponse(jsonResponse);
           //Converting JSON string
           apiResponse.setEmpsearchResponse(employeeSearchResponse);
           JSONObject jsonObject = new JSONObject(apiResponse.getEmpsearchResponse());
           JSONObject bodyObject = jsonObject.getJSONObject("Body");
           JSONObject ProcessObject=bodyObject.getJSONObject("processResponse");
            JSONArray empObject=ProcessObject.getJSONArray("ImageList"); 

           for(int i=0;i<empObject.length();i++)

               {

                JSONObject js = empObject.getJSONObject(i); 
                String name= ""+js.getString("ENO");
                String photo = ""+js.getString("ENAME");
                String empno=""+js.getString("EJOB");
                 EmployeeSearchPOJO  empo=new EmployeeSearchPOJO();
                  empo.setEMPNO(empno);
                   empo.setENAME(name);
                   empo.setPHOTO(photo);   
                   employeeList.add(empo);

               }

      }     

然后我将返回列表

我创建了 EmployeeSearchPOJO 类

我创建的列表是

List<EmployeeSearchPOJO> employeeList=new ArrayList<EmployeeSearchPOJO>();

public void setEmployeeList(List<EmployeeSearchPOJO> employeeList) {
    this.employeeList = employeeList;
}

public List<EmployeeSearchPOJO> getEmployeeList() {
    return employeeList;
}
4

3 回答 3

0

这就是我使用 GSON 的方式。

Gson gson = new Gson();
String json = myJsonString;
Type type = new TypeToken<ArrayList<MyClass>>(){}.getType();
myList= gson.fromJson(json, type);
于 2016-04-21T11:01:37.377 回答
0

步骤1

创建一个列为 的表ENO,ENAME,EJOB

第2步

使用响应变量创建一个POJO类。生成getset方法。

第 3 步

解析json响应并将其存储到数据库中。(这将增加性能)

第4步

创建一个class要充当的对象,datacontroll并创建一个类arraylist的类型pojo。为数组列表生成get and set方法。在set方法使用providerChangeSupport中。编写一个方法 return ,该方法将从 中获取值database并将结果(returnType is list)存储setterarraylist. constructor从dc 类调用方法。

第五步

最后右键单击该类并选择CreateDataControll. 然后从 jdeveloper 的应用程序窗口中,您可以listData Controlls面板中看到 。

于 2016-04-29T11:16:51.587 回答
0

由于您的 JSONArray 包含具有三个属性的 JSONObject,因此您可以使用完全相同的成员变量创建一个 java 类,例如

class Employee
{
    String ENO;
    String ENAME:
    String EJOB;

    //create getters ans setters
}

然后在您当前的代码中,添加以下导入:

import oracle.adfmf.framework.api.JSONBeanSerializationHelper;

在最后一个循环中,您可以编写:

 Employee emp=(Employee) JSONBeanSerializationHelper.fromJSON(Employee .class,js);
employeeList.add(emp);

现在您可以在 EmployeeSearchPOJO 类中设置employeeList,然后使用它来创建数据控件。

于 2016-06-27T09:42:11.780 回答