如何将json值存储在一组数组中



我有一个json文件,像这样:

http://da.pantoto.org/api/files

我想将这些值存储在变量中以供以后使用。这些值应该存储在一些字符串数组变量中,如id[], uploadDate[], url[]。

我可以找到使用ListView和ArrayAdapter的例子。但那不是我真正想要的。有人能帮忙吗??

这只是一个展示如何从JSON中获取值的示例。您需要根据需要存储这些值。

JSONObject jsonObject = new JSONObject("your response");
JSONArray filedetails = jsonObject.getJSONArray("files");
    for(int i=0; i<filedetails.size();i++){
       String id = filedetails.get(i).getString("id");
       JSONArray tagsdetails= filedetails.get(i).getJSONArray("tags");
       for(int i=0; i<tagsdetails.size();i++){
            //fetch values in it
        }
    }

你不能完全这样做,你必须遍历数组并单独获得每个对象的属性,然后如果你愿意,你可以创建一个数组来存储每个对象的属性。

//From the example: http://da.pantoto.org/api/files
JSONArray files = null;
//Creating service handler class instance
ServiceHandler sh = new ServiceHandler();
 
//Making a request to url and getting response
String jsonStr = sh.makeServiceCall("http://da.pantoto.org/api/files", ServiceHandler.GET);
 
JSONObject jsonObj = new JSONObject(jsonStr);
 
// Getting JSON Array node
files = jsonObj.getJSONArray("files");
//YOUR NEW ARRAY
String[] ids = new String[20];
String[] urls = new String[20];
//etc
//looping through All files
for (int i = 0; i < files.length(); i++) {
	JSONObject c = files.getJSONObject(i);
	 
	String id = c.getString("id");
	String url = c.getString("url");
	//etc
	
	
	//HERE IS WHAT YOU COULD DO OPTIONALLY IF YOU WANT HAVE IT ALL ON A SINGLE ARRAY WITHOUT OBJECTS:
	ids[i] = id;
	urls[i] = url;
	//etc
}

这是一种简单的方法。我也做过这种字符串数组然后使用

                try {
                    JSONObject jObj = new JSONObject(strDocketListResponse);
                    JSONArray jsonArray = jObj.getJSONArray("GetManifestDocketListResult");
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject detailsObject = jsonArray.getJSONObject(i);
                        String strDktNo = detailsObject.getString("Docketno");
                        String strDocketDate = detailsObject.getString("DocketDate");
                        String strOrigin = detailsObject.getString("Origin");
                        String strDestination = detailsObject.getString("Destination");
                        String[] strDocketNoDkt = new String[]{strDktNo};
                        String[] strDocketDateDkt = new String[]{strDocketDate};
                        String[] strDocketOriginDkt = new String[]{strOrigin};
                        String[] strDocketDestnDkt = new String[]{strDestination};                            
                        for (int sanjay = 0; sanjay < strDocketNoDkt.length; sanjay++) {
                            ItemCheckList itemCheckList = new ItemCheckList();
                            itemCheckList.setDocket_NO(strDocketNoDkt[sanjay]);
                            itemCheckList.setDocket_Date(strDocketDateDkt[sanjay]);
                            itemCheckList.setDocket_Origin(strDocketOriginDkt[sanjay]);
                            itemCheckList.setDocket_Destination(strDocketDestnDkt[sanjay]);
                            checkLists.add(itemCheckList);
                        }
                        checkAdapter = new ItemCheckAdapter(ActivityManifestEntry.this, checkLists, check_all);
                        manifestListView.setAdapter(checkAdapter);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                } 

最新更新