Я пытаюсь создать представление списка для приведенного ниже кода 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;
}
0
CodeWriter 21 Апр 2016 в 13:54

3 ответа

Лучший ответ

Шаг 1

Создать таблицу со столбцами как ENO,ENAME,EJOB.

Шаг 2

Создайте класс POJO с переменными ответа. Создайте методы get и set.

Шаг 3

Разберите ответ json и сохраните его в базе данных (это повысит производительность)

Шаг 4

Создайте class, который будет действовать как datacontroll, и создайте arraylist типа класса pojo. Сгенерируйте методы get and set для arrayylist. В методе set используйте providerChangeSupport. Напишите метод return, который будет извлекать значения из database и сохранять результат (returnType равен list) в методе setter arraylist. Вызовите метод из constructor класса постоянного тока.

Шаг 5

Наконец, щелкните правой кнопкой мыши класс и выберите CreateDataControll. Затем в окне приложения jdeveloper вы можете увидеть list на панели Data Controlls.

0
halfer 30 Апр 2016 в 12:53

Вот как я это сделал с помощью GSON.

Gson gson = new Gson();
String json = myJsonString;
Type type = new TypeToken<ArrayList<MyClass>>(){}.getType();
myList= gson.fromJson(json, type);
0
Grzegorz Bielański 21 Апр 2016 в 11:01

Поскольку ваш 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);

Теперь вы можете установить employeeList в классе EmployeeSearchPOJO, а затем использовать его для создания элемента управления данными.

0
aaruja 27 Июн 2016 в 09:42