синтаксический анализ json с неизвестными именами ключей не работает в android - PullRequest
0 голосов
/ 28 мая 2020

Привет, в приведенном ниже коде я анализирую json с помощью unkonwn key. Он не дает мне никакого ответа. Как только я получу ответ от сервера, я использую счетчик для отображения результатов. Я анализирую json без ключевых имен не распространены означает, что это неизвестно, используя приведенный ниже код, который я разбираю json данные

Может ли кто-нибудь помочь мне с кодом

Json ответ:

{
    "success": true,
    "result": {
        "describe": {
            "label": "Accounts",
            "name": "Accounts",
            "createable": true,
            "updateable": true,
            "deleteable": false,
            "retrieveable": true,
            "fields": [
                {
{
                    "name": "assigned_user_id",
                    "label": "Account Manager",
                    "mandatory": true,
                    "type": {
                        "name": "owner",
                        "users": {
                            "1x1": "Admin",
                            "2x5": "Manager",
                            "3x7": "Director",
                            "8x7": "Ex-Director",
                            "1x8": "CEO"
}]}
}
}

java:

 private void fetchAssigned() {
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                // Write code for your refresh logic

                progressDialog = new ProgressDialog(getActivity());
                progressDialog.setIndeterminate(true);
                progressDialog.setMessage("Loading...");
                progressDialog.setCanceledOnTouchOutside(false);
                progressDialog.setCancelable(false);
                progressDialog.show();

                sessionId = getActivity().getIntent().getStringExtra("sessionId");
                String operation = "Describe";
                String module = "Accounts";
               // String syncToken = "";
                //String mode = "public";
                final GetNoticeDataService service = RetrofitInstance.getRetrofitInstance().create(GetNoticeDataService.class);

                /** Call the method with parameter in the interface to get the notice data*/
                Call<AccountDescribe> call = service.GetFieldDetailsList(operation, sessionId, module);

                /**Log the URL called*/
                Log.i("URL Called", call.request().url() + "");

                call.enqueue(new Callback<AccountDescribe>() {
                    @Override
                    public void onResponse(Call<AccountDescribe> call, Response<AccountDescribe> response) {


                        Log.e("response", new Gson().toJson(response.body()));
                        if (response.isSuccessful()) {
                            Log.e("response", new Gson().toJson(response.body()));

                            AccountDescribe syncModule = response.body();


                            Gson g = new Gson();
                            String json = g.toJson(syncModule);
                            PreferenceManager.getInstance(requireContext()).setAPIResponseAccount(json);

                            workingOnResponse(syncModule);

                            progressDialog.dismiss();
                        }
                    }

                    @Override
                    public void onFailure(Call<AccountDescribe> call, Throwable t) {
                        Log.d("error", t.getMessage());
                        progressDialog.dismiss();
                    }


                });

            }



        }, 0);
        return ;
    }


 responseList=new ArrayList<Users>();
private void workingOnResponse(AccountDescribe syncModule){
        String success = syncModule.getSuccess();

        if (success.equals("true")) {
            Results_Account results = syncModule.getResult();

            DescribeDetails describeDetails=results.getDescribe();

            ArrayList<Fields> fields=describeDetails.getFields();


            for (Fields fields1 : fields) {
 String name = fields1.getName();
                if(name.equals("assigned_user_id")){
                            TypeDetails typeDetails=fields1.getType();
                            String owner=typeDetails.getName();
                            Users users=typeDetails.getUsers();
                            String label=fields1.getLabel();

                    JSONObject jsonResponse = null;
                    try {
                        jsonResponse = new JSONObject(String.valueOf(typeDetails));
                        Iterator iteratorObj = jsonResponse.keys();

                        while (iteratorObj.hasNext())
                        {
                            String keyName = (String)iteratorObj.next();
                            String valueName= null;
                            try {
                                valueName = jsonResponse.getString(keyName);
                                Users keyValueModel=new Users(keyName,valueName);
                                responseList.add(keyValueModel);
                                Log.d("responseList", String.valueOf(responseList));
                                ArrayAdapter<Users> dataAdapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, responseList);
                                spinneraccountManager.setAdapter(dataAdapter);
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }

                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }


                            }



            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...