`
sdusjy
  • 浏览: 28997 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

android解析json(以解析時时价为例),java也是一样的(二)

 
阅读更多

先把返回的json文档附上,以查询苹果为例:

"pager":{"total":"465","page":1,"rows":15},"products":[{"id":"8982","title":"\u82f9\u679c\uff08Apple\uff09iPad 2  MC769CH\/A  9.7\u82f1\u5bf8\u5e73\u677f\u7535\u8111 \uff0816G WIFI\u7248\uff09\u9ed1\u8272","url":"http:\/\/api.shishijia.com\/v1\/product\/8982","buyLink":"http:\/\/www.yihaodian.com\/product\/1114793_2","stock":"1","cover":{"small":"http:\/\/img14.360buyimg.com\/n4\/4815\/2183d9fa-d724-4abc-9e8c-8c7edd10bdd8.jpg","medium":"http:\/\/img14.360buyimg.com\/n2\/4815\/2183d9fa-d724-4abc-9e8c-8c7edd10bdd8.jpg","large":"http:\/\/img14.360buyimg.com\/n1\/4815\/2183d9fa-d724-4abc-9e8c-8c7edd10bdd8.jpg"},"lowPrice":"2825.00","highPrice":"3069.00","marketPrice":"3688.00","lowPriceStore":{"id":9,"storeKey":"yihaodian","storeName":"1\u53f7\u5e97","url":"http:\/\/www.yihaodian.com\/","enable":1,"supportAssociate":1,"classification":["3c","cosmetics"],"service":["genuineGuarantee","countryGuarantee","faultPay3","cashOnDelivery","payByPost","payByBank"],"fare":[],"fareUrl":"http:\/\/www.yihaodian.com\/deliveryinfo\/deliveryInfo.do"}},{"id":"1269964","title":"\u82f9\u679c\uff08APPLE\uff09iPhone 4S 16G\u7248 3G\u624b\u673a\uff08\u9ed1\u8272\uff09WCDMA\/GSM 0\u5143\u8d2d\u673a\u7248 \u4e0a\u6d77\u7279\u4ef7\u7248","url":"http:\/\/api.shishijia.com\/v1\/product\/1269964","buyLink":"http:\/\/www.360buy.com\/product\/640467.html","stock":"1","cover":{"small":"http:\/\/img12.360buyimg.com\/n4\/2643\/dd45d8c2-527a-4ce7-ba14-456b8a41d688.jpg","medium":"http:\/\/img12.360buyimg.com\/n2\/2643\/dd45d8c2-527a-4ce7-ba14-456b8a41d688.jpg","large":"http:\/\/img12.360buyimg.com\/n1\/2643\/dd45d8c2-527a-4ce7-ba14-456b8a41d688.jpg"},"lowPrice":"5180.00","highPrice":"5180.00","marketPrice":"5180.00","lowPriceStore":{"id":2,"storeKey":"jingdong","storeName":"\u4eac\u4e1c\u5546\u57ce","url":"http:\/\/www.360buy.com\/","enable":1,"supportAssociate":1,"classification":["3c","cosmetics"],"service":["freeShippingUnder39","timeLimitedShipping211","genuineGuarantee","priceProtect","extendGuarantee","replacement","installment","cashOnDelivery","payByPost"],"fare":[{"moreThan":0,"lessThan":39,"price":5},{"moreThan":39,"lessThan":"","price":0}],"fareUrl":"http:\/\/help.360buy.com\/help\/question-65.html"}},{"id":"8960","title":"\u82f9\u679c\uff08Apple\uff09MC940 iPad 2 Dock","url":"http:\/\/api.shishijia.com\/v1\/product\/8960","buyLink":"http:\/\/www.360buy.com\/product\/394499.html","stock":"1","cover":{"small":"http:\/\/img14.360buyimg.com\/n4\/4343\/b68b4316-5a33-492c-b36a-2690bfda5bfe.jpg","medium":"http:\/\/img14.360buyimg.com\/n2\/4343\/b68b4316-5a33-492c-b36a-2690bfda5bfe.jpg","large":"http:\/\/img14.360buyimg.com\/n1\/4343\/b68b4316-5a33-492c-b36a-2690bfda5bfe.jpg"},"lowPrice":"198.00","highPrice":"198.00","marketPrice":"198.00","lowPriceStore":{"id":2,"storeKey":"jingdong","storeName":"\u4eac\u4e1c\u5546\u57ce","url":"http:\/\/www.360buy.com\/","enable":1,"supportAssociate":1,"classification":["3c","cosmetics"],"service":["freeShippingUnder39","timeLimitedShipping211","genuineGuarantee","priceProtect","extendGuarantee","replacement","installment","cashOnDelivery","payByPost"],"fare":[{"moreThan":0,"lessThan":39,"price":5},{"moreThan":39,"lessThan":"","price":0}],"fareUrl":"http:\/\/help.360buy.com\/help\/question-65.html"}}

看起来比较乱,确实是这样的,看这个我就废了半个小时,这只是其中一部分

返回的数据主要是这样的,这个里面包括两大部分,一个是pager,一个是products,这个pager是个jsonObject,而products是个jsonArray,如果你看了我的地一篇文章,或是对json有点了解,那么很容易的就可以看出来。

下面是正式的解析部分:


首先是链接网络的部分:

 public String getJason(String url)throws Exception{
	   HttpClient client =new DefaultHttpClient();
	   HttpGet get=new HttpGet(url);
	   HttpResponse response=client.execute(get);
	   if(response.getStatusLine().getStatusCode()==200){
		   String result=EntityUtils.toString(response.getEntity());
		   return result;
	   }
	   
	return null;
	   
	   
   }

 这一部分是得到网络中你要解析的json的网络数据,返回的是字符串。

我所需要的只是products里面的数据,别的就不需要了,所以首先建立一个Bean类,product:

package com.test;

/**
 * @author sjy
 *
 * @date 2012-8-17下午7:07:27
 */
public class Product {
	private String id;
	private String title;
	private String url;
	private String buyLink;
	private String stock;
	private String coversmall;
	private String covermedium;
	private String coverlarge;
	private String lowPrice;
	private String highPrice;
	private String marketPrice;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public String getBuyLink() {
		return buyLink;
	}
	public void setBuyLink(String buyLink) {
		this.buyLink = buyLink;
	}
	public String getStock() {
		return stock;
	}
	public void setStock(String stock) {
		this.stock = stock;
	}
	public String getCoversmall() {
		return coversmall;
	}
	public void setCoversmall(String coversmall) {
		this.coversmall = coversmall;
	}
	public String getCovermedium() {
		return covermedium;
	}
	public void setCovermedium(String covermedium) {
		this.covermedium = covermedium;
	}
	public String getCoverlarge() {
		return coverlarge;
	}
	public void setCoverlarge(String coverlarge) {
		this.coverlarge = coverlarge;
	}
	public String getLowPrice() {
		return lowPrice;
	}
	public void setLowPrice(String lowPrice) {
		this.lowPrice = lowPrice;
	}
	public String getHighPrice() {
		return highPrice;
	}
	public void setHighPrice(String highPrice) {
		this.highPrice = highPrice;
	}
	public String getMarketPrice() {
		return marketPrice;
	}
	public void setMarketPrice(String marketPrice) {
		this.marketPrice = marketPrice;
	}
	public String toString(){
		return id+url+buyLink+coversmall+covermedium+coverlarge+highPrice+lowPrice+marketPrice+stock+title;
	}
}

 这个便是需要解析获得的所有数据。

由于前面已经知道得到网络json的方法。那么下面便是正式解析json了:

首先要获得products这个数组:

 String s=url;
String  jsonString=“”;
       try {
		s=getJason(s);
		JSONObject  item=new JSONObject(s);
		JSONArray array=item.getJSONArray("products");
		
		
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
			
 这一步我们就可以获得products这个数组了。然后,我们对array里面的没一个object进行解析。

 

 

分享到:
评论

相关推荐

    Android_JSON数据解析

    本篇将详细讲解如何在Android应用中解析JSON数据,主要涉及以下几个方面: 1. JSON基本结构 JSON由两种基本结构构成:对象(Object)和数组(Array)。对象是以花括号 `{}` 包围的键值对集合,键用双引号括起,如`...

    Android Studio解析JSON对象

    本主题聚焦于“Android Studio解析JSON对象”,这是一个非常关键且实用的技能,因为JSON作为一种轻量级的数据交换格式,广泛应用于网络通信和数据存储。JSON对象可以方便地表示各种复杂的数据结构,包括数组、键值...

    android 动态解析获取json数据的键值对

    这个"android 动态解析获取json数据的键值对"的项目就是针对这种情况的一个实例,主要展示了如何在Eclipse环境下,不预先创建JSON键值对应的实体类,而是动态地解析JSON并将其内容显示在列表上。 首先,我们要理解...

    老罗android 解析json数据源码

    本教程聚焦于老罗讲解的Android解析JSON数据的源码分析,这对于深入理解JSON处理以及优化应用程序性能至关重要。 首先,我们需要了解JSON的基本结构。JSON是一种基于键值对的格式,数据以键值对的形式存储,如{"key...

    Android 安卓 json解析

    虽然题目要求不使用第三方库,但值得一提的是,Google提供的Gson库是JSON解析的强大工具,它可以将Java对象转换为JSON字符串,反之亦然。如果允许,推荐使用Gson,它简化了大量解析工作。 总结,Android中的JSON...

    Android应用源码之Android 解析json_dome.zip

    这个压缩包"Android应用源码之Android 解析json_dome.zip"提供了关于如何在Android应用中解析JSON的示例代码,对于学习Android开发中的网络数据处理非常有帮助。 首先,我们需要了解JSON的基本结构。JSON基于...

    Android解析json速度对比

    在“Android解析json速度对比”的测试中,我们通常会设置一个标准的JSON数据集,然后使用这三个库进行反序列化操作,并记录每种库所花费的时间。测试方法可能包括以下步骤: 1. **数据准备**:创建一个包含大量键值...

    android解析JSON字符串

    Android 解析 JSON 字符串 Android 解析 JSON 字符串是 Android 应用程序中非常常见的一种数据交互方式。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和...

    Android 解析json_dome.zip

    2. **Android解析JSON的库** 在Android中,我们通常使用两种库来解析JSON数据: - `org.json`:这是Android SDK自带的库,提供了JSONObject和JSONArray类,可以方便地解析JSON对象和数组。 - `...

    android解析json小程序

    下面将详细阐述Android解析JSON的基本步骤和涉及的技术点。 首先,要理解JSON的结构。JSON由键值对组成,可以是对象(对象以大括号{}包围)或数组(数组以方括号[]包围)。例如: ```json { "name": "John", ...

    android解析Json数据

    本篇将深入探讨如何在Android平台上使用org.json库解析JSON数据。 一、JSON基础知识 1. JSON数据结构:主要包括对象(Object)和数组(Array)。对象由键值对组成,用花括号{}包围;数组是一组有序的值,用方括号[]...

    Android JSON数据的封装及解析

    二、Android中的JSON解析库 在Android中,我们通常使用以下两个库来处理JSON数据: 1. **org.json**:这是Android SDK自带的一个解析库,适用于简单的JSON操作。 2. **Gson**:Google提供的库,能将Java对象直接...

    Android Json 解析demo

    在“Android Json 解析demo”项目中,可能包含了创建JSON解析器的代码示例,以及如何在Android Studio中运行和测试这些功能的步骤。你可以通过查看项目中的JsonDemo文件来学习具体的实现细节,包括如何读取网络上的...

    Android解析Json数据的PPT和源码

    这个资料包包含了一个关于Android解析JSON数据的PPT和源码,可以帮助开发者深入理解和实践Android中如何处理JSON数据。 首先,我们要理解JSON的基本结构。JSON由键值对组成,键用引号括起来,后跟冒号,值可以是...

    Android Studio解析JSON数组

    在这个场景中,我们将探讨如何在Android Studio中解析JSON数组,并将获取的数据展示在ListView上。这个过程对于任何初学者来说都是一个重要的学习点,因为它涉及到网络数据获取、JSON解析以及UI展示。 首先,我们...

    android JSON解析放入ListView

    - 解析JSON:使用上述的JSON库解析JSON字符串,转换为Java对象。 - 创建适配器:自定义一个继承自BaseAdapter的类,用于将Java对象绑定到ListView的各个Item。 - 设置ListView:将适配器设置到ListView上,通过...

    JsonFormat java android

    无论是在Java后端还是Android前端,都能辅助开发者更方便地解析、验证和展示JSON数据。在实际开发过程中,熟练掌握这样的工具使用,能够显著提高开发效率,减少因格式问题引发的错误,让代码更加整洁,从而提升整体...

    Gson解析json数据

    在本文中,我们将深入探讨如何使用Gson解析JSON数据,包括处理简单JSON和复杂的JSON结构。 首先,我们要了解JSON的基本概念。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,...

    Android中Json数据解析

    在Android中,我们通常使用Google提供的Gson库或者org.json库来解析JSON数据。Gson库能够直接将JSON字符串转化为Java对象,反之亦然,非常方便。而org.json库提供了JSONObject和JSONArray类,可以手动解析和构建JSON...

    Android Studio下使用Google Gson解析Json数据示例

    2. 使用Gson实例解析JSON:有了JSON字符串和对应的数据模型类,我们可以使用Gson的fromJson()方法将JSON转换为Java对象。 ```java String jsonString = "{\"name\":\"John Doe\",\"age\":30,\"city\":\"New York\"}...

Global site tag (gtag.js) - Google Analytics