`

根据网址,返回JSONObject对象

阅读更多
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import org.json.JSONException;
import org.json.JSONObject;

/**
  * 根据网址,返回编码方式为utf-8的JSONObject对象
  * 注:只适合请求响应为json格式网址
  * @param src 来源网址
  * @author chitianxiang $22th March, 2012 - 2:44 p.m
  */
static private JSONObject getJsonObj4Utf8(String src) throws Exception {
    return getJsonObj(src, "utf-8");
}
/**
  * 根据网址,返回JSONObject对象
  * 注:只适合请求响应为json格式网址
  * @param src 来源网址
  * @param code 编码方式
  * @author chitianxiang $22th March, 2012 - 2:42 p.m
  */
static private JSONObject getJsonObj(String src, String code) {
    InputStreamReader reader = null;
    BufferedReader in = null;
    try {
        URL url = new URL(src);
        URLConnection connection = url.openConnection();
        connection.setConnectTimeout(1000);
        reader = new InputStreamReader(connection.getInputStream(), code);
        in = new BufferedReader(reader);
        String line = null; //每行内容
        int lineFlag = 0; //标记: 判断有没有数据
        StringBuffer content = new StringBuffer();
        while ((line = in.readLine()) != null) {
            content.append(line);
            lineFlag++;
        }
        return lineFlag == 0 ? null : new JSONObject(content.toString());
    } catch (SocketTimeoutException e) {
        System.out.println("连接超时!!!");
        return null;
    } catch (JSONException e) {
        System.out.println("网站响应不是json格式,无法转化成JSONObject!!!");
        return null;
    } catch (Exception e) {
        System.out.println("连接网址不对或读取流出现异常!!!");
        return null;
    } finally {
        if (in != null) {
            try {
                in.close();
            } catch (IOException e) {
                System.out.println("关闭流出现异常!!!");
            }
        }
        if (reader != null) {
            try {
                reader.close();
            } catch (IOException e) {
                System.out.println("关闭流出现异常!!!");
            }
        }
    }
} 

//简单使用
//小秘书网菜单http://www.xiaomishu.com/shop/postajax/GetDishList.aspx?pageSize=12&typeId=t1&typeSort=A0&resId=C47E19P46723&version=2
//请求ajax网址
StringBuilder sbSrc = new StringBuilder();
sbSrc.append("http://www.xiaomishu.com/shop/postajax/GetDishList.aspx?pageSize=10");
sbSrc.append("&typeId=" + dataId);
sbSrc.append("&typeSort=A0");
String resId = delEndSeparator(sourceUrl, "/");
sbSrc.append("&resId=" + resId.substring(resId.lastIndexOf("/")));
sbSrc.append("&version=2");
//转换成json对象取出菜单
JSONObject jo = getJsonObj4Utf8(sbSrc.toString());
if (jo == null) {
    continue;
}
JSONObject menu = jo.getJSONObject("items");
Iterator<String> keys = menu.keys();
while (keys.hasNext()) {
    String key = keys.next();
    JSONObject goods= menu.getJSONObject(key);
    String title = goods.get("title").toString();
    String price = goods.get("price").toString();
    String[] goodsInfo = new String[] {title, price};
    goodsInfoLst.add(goodsInfo);
}
goodsInfoMap.put(goodstype, goodsInfoLst);

  /**
	 * 删除符合规则的结束符 
	 * @param obj		等删除对象
	 * @param endWith	结束符
	 * @author chitianxiang $Feb 4th, 2012
	 */
	static private String delEndSeparator(Object obj, String endWith) {
		String tempStr = "";
		if (!(obj instanceof String)) {
			tempStr = obj.toString();
		} else {
			tempStr = (String)obj;
		}
     
      return tempStr.endsWith(endWith) 
				? tempStr.substring(0, tempStr.length() - 1)
				: tempStr;
	} 
分享到:
评论

相关推荐

    net.sf.json.JSONObject对象使用指南

    ### net.sf.json.JSONObject对象使用指南 #### 简介与背景 随着互联网技术的发展,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在现代软件开发中的应用越来越广泛。其简洁性和易读性使其成为...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    - **类型转换**:`JSONObject`的`getXXX`系列方法可以根据字段类型返回对应的Java值,如`getString()`, `getInt()`, `getBoolean()`等。 - **异常处理**:在转换过程中,可能会遇到JSON格式错误、字段不匹配等问题,...

    jsonobject

    `JSONObject`是Java中处理JSON的一种常见工具,它允许我们创建、解析和操作JSON对象。在Java中,`JSONObject`是org.json库的一部分,这个库提供了处理JSON的各种功能。 `JSONObject`类是用于表示JSON对象的Java类。...

    JSONObject对象 JSON.JAR

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。在一次项目中用到页面返回数据处理。JSONObject的引入包

    JsonObject

    例如,你可能需要将Java对象转换为JsonObject,然后发送到服务器,或者接收服务器返回的JSON数据并解析成Java对象。此外,由于JSON格式的普遍性和轻量级特性,JsonObject也常用于本地数据存储,例如使用...

    JSONObject及依赖的jar包

    在Java中,`JSONObject`是JSON-P(Java API for JSON Processing)规范的一个实现,由org.json库提供,它允许开发者将Java对象转换为JSON格式,以及将JSON数据转换回Java对象。 `JSONObject`类是处理JSON对象的核心...

    org.json.JSONObject引用依赖包

    - `new JSONObject(Map map)` 从Map对象中创建一个JSONObject,其中Map的键是字符串,值可以是基本类型或可转化为JSON的对象。 - `JSONObject(string jsonText)` 从JSON格式的字符串创建JSONObject。 2. **添加...

    org.json.JSONObject 包下载

    `JSONObject`是`org.json`包中的核心类,它代表了一个JSON对象。一个JSON对象是一个无序的键值对集合,每个键都是一个字符串,每个值可以是多种数据类型,如字符串、数字、布尔值、数组、其他JSON对象等。`...

    JSONObject生成的json的架包

    1. **org.json**:这是一个小型、开源的Java库,提供了JSONObject类,用于创建和操作JSON对象。例如,你可以使用`new JSONObject()`创建一个空的JSONObject,然后通过`put()`方法添加键值对。 2. **com.google.gson...

    使用JSONObject需要用到的jar包

    5. `keys()`:返回JSONObject中所有键的迭代器。 6. `toString()`:将JSONObject转换为JSON格式的字符串。 7. `length()`:返回JSONObject中键的数量。 除此之外,JSONObject还可以与JSONArray相互转换,以及与Java...

    使用JsonObject所需要的jar包

    JsonObject是Gson库中的一个类,它代表了一个JSON对象。下面是一些基本用法示例: ```java import com.google.gson.JsonObject; // 创建一个空的JsonObject JsonObject jsonObject = new JsonObject(); // 添加...

    JSONObject依赖的Jar包.rar

    在web项目中经常会用到json数据(如:struts2处理请求返回json数据给jsp解析),因此,JSONObject对象是必备的,这时就需要引入相关的jar包了。

    net.sf.json.JSONObject依赖库.zip

    - `keys`:返回JSONObject中所有键的迭代器。 此外,`net.sf.json.JSONObject`还支持与Java集合框架的互操作性,可以方便地将JSON对象转换为Java的Map,或者从Map创建JSON对象: ```java Map, Object&gt; map = new ...

    JSONObject完整jar包

    在Java中,处理JSON数据时,`JSONObject`是常用的一个库,它允许我们方便地进行JSON对象的创建、读取和修改。 `JSONObject`是由org.json项目提供的,它包含了对JSON数据的各种操作方法。这个“JSONObject完整jar包...

    JSONObject 6个JAR 很完整

    例如,可以使用 JSONObject 的 `put` 方法添加键值对,使用 `get` 方法获取指定键的值,`toString` 方法将 JSON 对象转换为字符串,而 `fromObject` 方法则可以从 Java 对象创建 JSON 对象。 在实际开发中,JSON ...

    自定义JSONObject属性过滤注解

    在Java开发中,JSON对象(JSONObject)常用于数据交换,特别是在前后端交互中。当我们序列化或反序列化Java对象为JSON时,有时需要忽略某些属性,以避免不必要的信息暴露或者提高性能。`@JsonIgnore`是Jackson库提供...

    JSONObject对象依赖的jar包,json-lib-2.4-jdk15,commons-beanutils,commons-collections

    在web项目中经常会用到json数据(如:struts2处理请求返回json数据给jsp解析),因此,JSONObject对象是必备的,这时就需要引入相关的jar包了。 json所需要的jar包如下: json-lib-2.4-jdk15.jar json所依赖的jar...

    jsonobject的几个依赖jar包.zip

    在Java编程中,`JSONObject`是Java JSON库中的一个关键类,用于处理JSON对象。这个压缩包文件"jsonobject的几个依赖jar包.zip"包含了与`JSONObject`相关的依赖库,便于在项目中进行JSON操作。 `JSONObject`是org....

    struts2的方式返回json到jsp页面 List,Map,Object,对象各种操作都有....MyEclipse的,导入直接看效果。

    jsp通过Ajax无刷新获取Action返回的模拟数据,然后通过struts2转化成json数据返回页面....这里面Map,List,对象等等,一些常用的操作都有。主要的代码在Action和 json.js里面。适合新手入门

Global site tag (gtag.js) - Google Analytics