【问题标题】:Read the JSON response in Android在 Android 中读取 JSON 响应
【发布时间】:2017-05-26 21:09:21
【问题描述】:

我的响应低于 JSON,我必须将这两个数据都存储在微调器中,但是当我选择 Alabama 时,toast msg 中的“AL”应该会出现。我该怎么办?

{
    "status" : "success",
    "data" : {
        "AL" : "Alabama",
        "AK" : "Alaska"
    }
}

提前谢谢你

【问题讨论】:

标签: android json


【解决方案1】:

试试

JSONObject jsonObject = new JSONObject(jsonString);
String status = jsonObject.getString("status");
List<String> data = new ArrayList<String>();
JSONArray array = jsonObject.getJSONArray("data");
Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()) {
    String key = keys.next();
    String value = jsonObject.getString(key);
}

【讨论】:

    【解决方案2】:

    我的朋友试试这个

    JSONObject jsonObject = new JSONObject(response);
            Iterator<String> keys = jsonObject.keys();
            while (keys.hasNext()) {
                String key = keys.next();
                String value = jsonObject.getString(key);
                Log.v("**********", "**********");
                Log.v("category key", key);
                Log.v("category value", value);
    
                String firstChar = String.valueOf(value.charAt(0));
    
                if (firstChar.equalsIgnoreCase("{")) {
                    JSONObject innerJObject = jsonObject.getJSONObject(key);
                    Iterator<String> innerkeys = innerJObject.keys();
                    String innerkey = innerkeys.next();
                    String innervalue = innerJObject.getString(innerkey);
                    Log.v("**********", "**********");
                    Log.v("inner key", innerkey);
                    Log.v("inner value", innervalue);
                }
            }
    

    【讨论】:

      【解决方案3】:

      你好,如果有帮助,试试这个

      public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
          List<City>cityList= new ArrayList<>();
          List<String> cityListName= new ArrayList<>();
          Spinner spnCity;
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              spnCity=(Spinner)findViewById(R.id.spnCity);
              String response="{\"status\":\"success\",\"data\":{\"AL\":\"Alabama\",\"AK\":\"Alaska\"}}";
              try {
                  JSONObject iObject=new JSONObject(response);
                  JSONObject data=iObject.getJSONObject("data");
                  Iterator<String> iter = data.keys();
                  while (iter.hasNext()) {
                      String key = iter.next();
                      try {
                          Object value = data.get(key);
                          cityListName.add(value.toString());
                          cityList.add(new City(key,value.toString()));
                      } catch (JSONException e) {
                      }
                  }
                  ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, cityListName);
      
                  // Drop down layout style - list view with radio button
                  dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      
                  // attaching data adapter to spinner
                  spnCity.setAdapter(dataAdapter);
              } catch (JSONException e) {
                  e.printStackTrace();
              }
          }
      
      
          @Override
          public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
              String item = adapterView.getItemAtPosition(i).toString();
              for (int j = 0; j < cityList.size(); j++) {
                  if(cityList.get(j).getCityName().equals(item)){
                      Toast.makeText(adapterView.getContext(), "Selected: " + item +" "+cityList.get(j).getCityName(), Toast.LENGTH_LONG).show();
                  }
              }
              // Showing selected spinner item
      
          }
      
          @Override
          public void onNothingSelected(AdapterView<?> adapterView) {
      
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2016-02-29
        • 2013-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-09
        • 2013-05-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多