Android getString()返回null
我有一个JSONObject,它的值如下:Android getString()返回null,android,Android,我有一个JSONObject,它的值如下: { "Success": true, "City": { "1": "noida", "2": "Delhi", "3": "Kanpur", "4": "Gurgaon", "5": "Mumbai", "7": "Noida", "8": "NEWYORK", "9": "Patna" } } 我
{
"Success": true,
"City": {
"1": "noida",
"2": "Delhi",
"3": "Kanpur",
"4": "Gurgaon",
"5": "Mumbai",
"7": "Noida",
"8": "NEWYORK",
"9": "Patna"
}
}
我对每个值都有一个键值,但对键“6”没有任何值。所以它返回“6没有值”异常。我正试图通过使用此代码删除此项,但失败。。。请记住,城市将以字符串[]的形式呈现在微调器中
代码如下:
JSONObject jsonCities = jsonObject.getJSONObject("City");
int len = jsonCities.length();
Log.i("Length of jsonCities is :", ""+len);
for(int i=1;i<=len;i++)
{
if(jsonCities.get(""+i)==null)
{
Log.i("NULL VALUE", "NULL VALUE");
continue;
}
else
{
Log.i("Cities :",""+jsonCities.getString(""+i));
cities_hashmap.put(""+i, ""+jsonCities.getString(""+i));
Log.i("cities_hashmap", ""+cities_hashmap);
}
}
cities = new String[cities_hashmap.size()];
for(int j=1;j<=cities_hashmap.size();j++)
{
Log.i("CITY IS :", cities_hashmap.get(""+j));
cities[j-1] = cities_hashmap.get(""+j);
Log.i("City Array in String form is :", ""+cities);
}
context.runOnUiThread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
ArrayAdapter<String> adapter = new ArrayAdapter<String>(Registration.this, android.R.layout.simple_spinner_item, cities);
country.setAdapter(adapter);
}
});
JSONObject jsonCities=JSONObject.getJSONObject(“城市”);
int len=jsonCities.length();
Log.i(“jsonCities的长度为:,”+len);
对于(int i=1;i只需这样使用:
String value = jsonCities.getString(Integer.toString(i));
您可以使用JsonObject的has()方法找到该键是否可用,如果找到该键,则返回true,否则返回false
if(jsonCities.has(""+i)){
// do the thing
}
检查此链接中的更多方法
跳过6as
for(int i=1;i<=len;i++)
{
if(i == 6 )
{
i += 1;
}
if(jsonCities.get(""+i)==null)
{
Log.i("NULL VALUE", "NULL VALUE");
continue;
}
else
{
Log.i("Cities :",""+jsonCities.getString(""+i));
cities_hashmap.put(""+i, ""+jsonCities.getString(""+i));
Log.i("cities_hashmap", ""+cities_hashmap);
}
...
...
for(int i=1;i您可以更改此“for”循环
for(int i=1;i<=len;i++)
如何获取这些键的相关值我有一个hashmap。hashmap的值在spinner中使用。我如何识别相应的键,选择哪个值?在获得键后,只需输入“cities\u hashmap.put(key,jsonCities.getString(key));”您完成了。这不是固定的,先生…如果我从另一个微调器中选择不同的值,那么第一条记录可能为空…此值取决于另一个微调器我有一个名为countries的微调器…根据国家的选择…相应的城市正在从服务器获取。总之,先生,,,,我已经获得了所有的密钥和c对应的值。现在我在hashmap中添加了这些键值对…现在的要求是通过传递字符串[]将这些值放入微调器。只需从字符串[]中获取键并解析JSON数组,这对您来说很容易。因为现在您知道hashmap和字符串[]中的所有键,所以从那里获取并解析JSON数组。
Iterator it = jsonCities.keys();
while(it.hasNext())
{
String key = it.next().toString();
...
}