`
jilong-liang
  • 浏览: 480516 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

使用org.json解析较复杂的百度API附近的银行等地方

    博客分类:
  • Json
阅读更多
package com.org.utils;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

public class ServerUtils {
	
	private static String content = "",line=System.getProperty("line.separator");//换行相当于\n 
	public static String getContent(String url){
		HttpClient client=new DefaultHttpClient();
		HttpEntity httpEntity=null;
		String result="";
		try {
			HttpGet post=new HttpGet(url);
			HttpResponse httpResponse = client.execute(post);
		    httpEntity=httpResponse.getEntity();
			if(httpEntity!=null){
				result=EntityUtils.toString(httpEntity, "UTF-8").trim();
				return result; 
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			try {
				httpEntity.consumeContent();
				 
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return null;
	}
	/** 
     * 读文件流 
     * @param formPath从哪里读取的文件路径 
     * @return 
     */  
    public static String readerFile(String formPath) {  
        FileReader read = null;  
        BufferedReader reader = null;  
        try {  
            read = new FileReader(new File(formPath));  
            reader = new BufferedReader(read);  
            StringBuffer buffer = new StringBuffer("");  
            content = reader.readLine();  
            while (content != null) {  
                buffer.append(content).append(line);  
                content = reader.readLine();  
            }  
            return content = buffer.toString();//返回  
        } catch (Exception e) {  
            e.printStackTrace();  
        } finally {  
            try {  
                if (reader != null)reader.close();  
                if (read != null)read.close();  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
        return "";//没值就返回空  
    }  
      
	
	public static void main(String[] args) {
		  String Url="http://api.k780.com:88/?app=entry.qihu&domain=www.baidu.com&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json";
		  System.out.println(getContent(Url));
	}
}

 

package com.org.json;

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

import com.org.utils.ServerUtils;

/**
 * @Author:liangjilong
 * @Date:2014-4-28
 * @Version:1.0
 * @Descript:从本地的文本读取文件下来解析json数据
 */
public class TestJson2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		
		String path=TestJson2.class.getClassLoader().getResource("json.txt").getFile();
		String json = ServerUtils.readerFile(path);

		JSONObject jsonObj = new JSONObject(json);

		String status = jsonObj.get("status").toString();// 解析status节点
		// System.out.println(status);

		String  results=jsonObj.get("results").toString();//results节点
	
		JSONArray  resultArrs=new JSONArray(results);
		 
		for (int i = 0; i < resultArrs.length(); i++) {
			JSONObject resultObj=(JSONObject)resultArrs.get(i);  
			String name="第"+i+resultObj.get("name");//results下的name节点
			
			String address=resultObj.getString("address");////results下的address节点
			
			if(resultObj.has("telephone")){//判断是否有这个节点
				String telephone=resultObj.getString("telephone");////results下的telephone节点
				System.out.println(telephone);
			}
			String detail_url=resultObj.get("detail_url").toString();
			if(resultObj.has("tag")){//判断是否有这个节点
				String tag=resultObj.get("tag").toString();
			}
			
			
			JSONObject locationObj=(JSONObject)resultObj.get("location");//location节点
			
			String lat=locationObj.getString("lat");//location节点lat经度
			String lng=locationObj.getString("lng");//location节点lng伟度
			System.out.println(lng);
			
		}
		 
	}

}

 

package com.org.json;

import java.net.URLEncoder;

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

import com.org.utils.ServerUtils;

/**
 * @Author:liangjilong
 * @Date:2014-4-28
 * @Version:1.0
 * @Descript:从网络上抓去下来解析json数据
 */
public class TestJson1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		String key="D4tWvZgUrICf3oga0Q0uT5sk";	
		String url=	getUrl("银行", key);	//即搜索经纬度39.915,116.404,39.975,116.414的附近的银行
		String json = ServerUtils.getContent(url);

		JSONObject jsonObj = new JSONObject(json);

		String status = jsonObj.get("status").toString();// 解析status节点
		// System.out.println(status);

		String  results=jsonObj.get("results").toString();//results节点
	
		JSONArray  resultArrs=new JSONArray(results);
		 
		for (int i = 0; i < resultArrs.length(); i++) {
			JSONObject resultObj=(JSONObject)resultArrs.get(i);  
			String name="第"+i+resultObj.get("name");//results下的name节点
			
			String address=resultObj.getString("address");////results下的address节点
			
			if(resultObj.has("telephone")){//判断是否有这个节点
				String telephone=resultObj.getString("telephone");////results下的telephone节点
				System.out.println(telephone);
			}
			String detail_url=resultObj.get("detail_url").toString();
			if(resultObj.has("tag")){//判断是否有这个节点有就取出来
				String tag=resultObj.get("tag").toString();
			}
		
			JSONObject locationObj=(JSONObject)resultObj.get("location");//location节点
			
			String lat=locationObj.getString("lat");//location节点lat经度
			String lng=locationObj.getString("lng");//location节点lng伟度
			System.out.println(lng);
			
		}
		 
	}
	
	/**
	 * 
	 * @param keyWord搜索的地方
	 * @param key百度申请的ak密钥
	 * @return
	 * @throws Exception
	 */
	public static String getUrl(String keyWord, String key)throws Exception{
		StringBuffer buffer=new StringBuffer();
		buffer.append("http://api.map.baidu.com/place/search?");
		buffer.append("&query="+URLEncoder.encode(keyWord,"utf-8"));
		buffer.append("&bounds="+"39.915,116.404,39.975,116.414");//经纬度
		buffer.append("&output=json");//输出格式(JSON/XML)
		buffer.append("&key="+key);
		return buffer.toString();
	}

}

 

 

  • 大小: 106.5 KB
0
0
分享到:
评论

相关推荐

    Android-调用百度云api实现身份证识别和银行卡识别

    - 接收到服务器返回的结果后,解析JSON数据,提取出身份证上的关键信息,如姓名、性别、出生日期、地址和身份证号等。 3. **银行卡识别** - 银行卡OCR的流程与身份证识别类似,也是上传银行卡照片,但需要识别的...

    aip-java-sdk-4.1.0.zip )

    《基于OCR技术的图片文字识别——深度解析百度aip-java-sdk-4.1.0》 在当今数字化时代,图像中的文字识别(OCR,Optical Character Recognition)技术扮演着至关重要的角色,它使得计算机能够自动识别并转换图像中...

    java百度OCR文字识别名片信息

    // 实现获取access_token的方法,具体实现依赖于百度API文档 } } ``` 在这个示例中,我们读取本地的图片文件,将其转换为Base64编码,然后构建包含这个编码的JSON请求体。同时,我们需要获取一个访问令牌(access...

    优化C# WinForm从中国银行网站抓取汇率表

    在本文中,我们将深入探讨如何优化C# WinForm应用程序,以高效地从中国银行网站抓取实时的汇率信息。这个过程涉及到网页数据抓取、网络请求处理、HTML解析以及WinForm界面的更新等多个方面。 首先,我们需要理解...

    Baidu.Aip.Ocr 文字识别 winform 源码

    百度AIP OCR SDK提供了丰富的API接口,包括通用文字识别、身份证识别、银行卡识别等多种场景的识别功能。它基于深度学习算法,能够对复杂背景下的文本进行高精度识别,支持多种语言。 2. **Windows Forms**: ...

    百度OCR-身份证图片识别源码

    通常,这个过程包括上传身份证图片、调用OCR服务、解析返回的JSON数据、将识别出的文字与身份证字段对应,最后将结果显示给用户。 在实际应用中,为了提高用户体验,开发者还会考虑优化如图像预处理(如旋转校正、...

    sfzxxsb.rar

    3. 结果解析:接收百度OCR返回的识别结果,这通常是JSON格式,包含每个识别出的单词及其位置信息。 4. 数据提取与存储:从解析的结果中提取身份证信息,并可能将其保存到数据库或其他持久化存储中。 压缩包内的...

    ocr文字识别.rar

    这些工具可能包含图片上传、识别请求的发起、结果解析以及错误处理等功能,便于用户在实际工作中快速使用。 5. **工程实践**:这个工程实例可能涉及到的编程语言可能是Python,因为Python在数据处理和API调用方面...

    易语言-百度ORC识别银行卡信息

    在银行卡信息识别中,百度ORC可以准确地解析出卡号、银行名称、有效期等关键字段,这对于自动化的金融服务或数据分析非常有用。 使用易语言与百度ORC进行银行卡信息识别,首先需要了解百度OCR的API接口。开发者需要...

    百度ORC识别银行卡信息-易语言

    - 数据解析:解析百度返回的JSON或其他格式的结果,提取所需信息。 - 安全性:考虑到银行卡信息的敏感性,必须确保数据传输和存储的安全,避免信息泄露。 通过分析这个项目,我们可以学习到易语言的编程技巧,以及...

    百度OCR识别iOS demo

    此外,百度OCR还提供了表格识别、身份证、银行卡、名片等特定对象的识别,极大地拓展了其应用场景。 在iOS平台上实现OCR识别,开发者通常需要遵循以下步骤: 1. **集成百度OCR SDK**:首先,需要在项目中导入百度...

    Android OCR 文字识别

    编写代码调用API,需要处理网络请求,如使用`Retrofit`或`OkHttp`发送POST请求,携带图片数据和API密钥,接收并解析返回的JSON结果。 4. **注意事项**: - 本地OCR受设备性能和训练数据集限制,可能识别效果不理想...

    易语言-易语言调用百度OCR 6种识别

    在提供的压缩包文件“易语言调用百度OCR识别”中,可能包含了示例源代码、API接口说明和使用教程等资源,帮助开发者快速理解和实现上述流程。通过学习和研究这些材料,开发者可以掌握如何在易语言环境下有效地利用...

    OCR图片识别文字

    5. **调用OCR接口**:百度提供了多种OCR接口,如通用文字识别、身份证识别、银行卡识别等。根据需求选择合适的接口,如`AipOcr.basicGeneral`用于基本的文字识别,`AipOcr.idcard`用于身份证识别,`AipOcr.bankCard`...

    baiduocr:百度OCR图片识别提取工具

    百度OCR是百度云提供的一种高级API服务,支持多种类型的文档和图片的文字识别,包括身份证、银行卡、营业执照等证件的识别,以及通用文字、表格、手写文字等复杂场景的识别。它采用深度学习算法,具有高精度、高...

    百度AI文字 普通与精准识别-易语言

    总的来说,使用易语言结合百度AI的文字识别服务,开发者可以方便地构建自己的文本识别应用,无论是在普通场景还是对精度有较高要求的场景,都能找到合适的解决方案。这不仅简化了开发流程,也为AI技术的普及提供了...

Global site tag (gtag.js) - Google Analytics