java - 从 URL 解析 JSON 数据时出现问题

标签 java android arrays json

我有一个与从 URL 解析 JSON 数据相关的查询。

这是我的场景:

我有一个像 URL1 这样的 URL,我可以从其中获取 JSON 数据。

有这样的数据。

 {
  "Eat & Drink":{
    "Alfresco":3,
    "Bars":3,
    "Brewery":5,
    "Cafe":0,
    "Distillery":0,
    "Family":5, 
    "Fine Dining":0, 
    "Home Delivery":0,
    "Nightclubs":2,
    "Restaurant":0,
    "TakeAway":0,
    "Wineries":0}
}

我想获取键和值字段而不传递它,因为这里它在所有地方都是不同的。

所以首先我得到像第一个“Alfresco”这样的 key ,并且使用该 key 我们会得到该 key 的值,例如“3”。

最佳答案

package com.example.json_parser;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
public class SECOND extends Activity {
    /** Called when the activity is first created. */
     ArrayList<String> listItems ;
     ListView lv ;
     Button btn;
     EditText et;
     Bundle bunn;
    @SuppressWarnings({ "rawtypes", "unchecked" })
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView)findViewById(R.id.lv);


        lv.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1,android.R.id.text1, this.fetchTwitterPublicTimeline()));
    }
    public ArrayList<String> fetchTwitterPublicTimeline()
    {
        listItems = new ArrayList<String>();
        try {
            URL twitter = new URL(
                    "MENTION YOUR URL HERE");

            URLConnection tc = twitter.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    tc.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                JSONArray ja = new JSONArray(line);
                for (int i = 0; i < ja.length(); i++) {
                    try{
                        JSONObject jo = (JSONObject) ja.get(i);
                        //listItems.add(jo.getString("PUT YOUR NODE ITEM HERE WHICH U WANNA FETCH")+"\n"+jo.getString("PUT YOUR NODE ITEM HERE WHICH U WANNA FETCH")+"\n"+jo.getString("PUT YOUR NODE ITEM HERE WHICH U WANNA FETCH"));
                        listItems.add(jo.getString("PUT YOUR NODE ITEM HERE WHICH U WANNA FETCH")+"\n"+jo.getString("0"));
                    }catch(Exception e){

                    }


                }
            }


            lv.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    // TODO Auto-generated method stub
                    Toast.makeText(getApplicationContext(),listItems.get(arg2).toString() , Toast.LENGTH_SHORT).show();

                }
            });



        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return listItems;
    }
}

关于java - 从 URL 解析 JSON 数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12818452/

相关文章:

java - 从 Java 中的批处理文件运行多个 cmd.exe 进程

java - 如何在DownloadManager中设置下载目录?

arrays - 如何在 Kotlin 中将对象转换为字节数组

javascript - JavaScript 字符串数组中的顺序差异

java - 除非我通过Path而不是File声明Scanner,否则Java Scanner为什么会引发NoSuchElementException?

java - HashSet - 确保早期对象持久化

java - 在java中编辑图像

java - 无法从图库 Android 应用程序中选择图像(灰显)

android - 如何在默认主题 Theme.Holo.Light 中更改 homeAsUpIndicator 的图像

javascript - 根据javascript中的索引将数组分成两部分