从Android应用程序解析来自url的json数据

时间:2015-04-08 21:28:56

标签: android json parsing url

我正在尝试从网址解析json。 我成功地从一个url解析,所以我复制了json文件并上传到我的域(不同的url),但现在我无法从json获取任何数据。 除了网址,我没有在Android应用程序中查找代码。 请帮助。

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
    .detectAll()
    .penaltyLog()
    .build();
StrictMode.setThreadPolicy(policy);

TextView tv=(TextView)findViewById(R.id.textView1);

    TextView wid = (TextView) findViewById(R.id.id);
    TextView name = (TextView) findViewById(R.id.title);
    TextView url = (TextView) findViewById(R.id.description);


    JSONObject json = null;
    String str = "";
    HttpResponse response;
    HttpClient myClient = new DefaultHttpClient();
    HttpPost myConnection = new HttpPost("My Url~");

    try {
        response = myClient.execute(myConnection);
        str = EntityUtils.toString(response.getEntity(), "UTF-8");

    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    if(1>0)
        tv.setText(str);
    try{
        JSONArray jArray = new JSONArray(str);
        json = jArray.getJSONObject(0);


        wid.setText(json.getString("id"));
        name.setText(json.getString("title"));
        url.setText(json.getString("description"));


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

当我打印str时,我看到了JSON文件中的所有文本,但是当我尝试使用getJSONObject时,我没有从JSON文件中获取任何数据。

1 个答案:

答案 0 :(得分:1)

尝试这种方法:

  1. 放置您的JSON here(或使用类似的JSON2POJO映射)从您的JSON生成Object
  2. 从步骤1的输出(MyClass.java)
  3. 创建新的Java类
  4. 将JSON提取到“str”变量后,使用例如GSON对其进行反序列化:

    Gson gson = new Gson();

    MyClass obj = gson.fromJson(str,MyClass.class);

  5. 然后你可以使用:

    obj.getWhatEverYouWant();

  6. 访问您的数据。它比手动解析JSON要好得多。

    此外,您应该考虑使用RETROFIT或OKHTTP发送您的http请求。