Android json结果为null

时间:2014-03-30 17:53:49

标签: android json

大家好我试着解析json。我有简单的json像like this

我尝试解析这个json,但结果是null。我不知道我做错了什么 这是我的代码

public class HomeActivity extends Activity {
private String URL = "*****************";
private TextView PNumber;

JSONArray jsonArray = null;

public static String KEY_PNumber = "PNumber";
String id;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home);
    PNumber = (TextView) findViewById(R.id.PNumber);
    new LoadDataAllChanelsToServer().execute();
}

private class LoadDataAllChanelsToServer extends
        AsyncTask<String, Integer, String> {

    @Override
    protected void onPreExecute() {

    }

    @Override
    protected String doInBackground(String... urls) {

        JSONParser jParser = new JSONParser();


        JSONObject json = jParser.getJSONFromUrl(URL);

         try {

    JSONObject jsonObject = json.getJSONObject("data");

    id = jsonObject.getString("PNumber");
} catch (JSONException e) {
    e.printStackTrace();
}

        return null;

    }

    @Override
    protected void onPostExecute(String result) {
        PNumber.setText(id);
    }

}

}

如果有人知道解决方案帮助我,我做错了什么

我有这个错误 执行doinbackground()

时发生错误

1 个答案:

答案 0 :(得分:1)

您发布的Json不包含任何数组。它是一个JSON对象。 Json数组以[开头。您可以从here了解有关JSON的更多信息。

现在,关于解析:

按如下方式进行:

    try {

        JSONObject jsonObject = json.getJSONObject("data");

        String pNumber = jsonObject.getString("PNumber");
    } catch (JSONException e) {
        e.printStackTrace();
    }