`
yu_duo
  • 浏览: 56601 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

读取网址中json数据 转换为java格式

阅读更多
内容描述:
条件:http://www.aaa/Bbb/ccclist.json
将条件中的json数据转换为javalist形式;

思路(脉络):
1. 读取json字符串;
2. 分析字符串格式;
3. 取出我需要的字符串(按照我需要的格式取出字符串);
4. 查看字符串编码格式是否正确
5. 使用json类库转换为beanlist形式;
6.      bean中属性格式要和字符串中的对应;

继续想:
1.读取网址中的json数据需要使用httpclient/httpUrLconnettion读取网址内容;
2.字符串格式如下:{"stutus":2,"result":[{"company_name":"a公司","company_id":"-1"}, {"company_name":"222","company_id":"-55"},{"company_name":"撒旦法接 口"company_id":"-33"},{"company_name":"多的"company_id":"-34"}]}

分析格式:此字符串可以看做map的嵌套,
Map
Map<”status”,”2”>
Map <”result”,”list”>
    Map<”company_name”,company.get(company_id)>
    Map<”company_id”,company.get(company_name)>
3.取出需要的数据
我需要的数据位result中的list,所以用截取字符串方法将其取出来,这里用到了从0学java总截取字符串数据的的内容substring、indexof这两个知识点。
4.查看字符串格式是否正确
常用编码格式为utf-8,坚持文件属性的编码格式,将其更改为utf-8,或者在读取时用getmethod设置utf-8。
5.使用json类库转换为beanlist形式
首先声明一个objectmapper对象,使用其中的TypeReference方法将我们处理好的数据自动解析为bean形式,存放用该bean类型的list中。
最后遍历输出list中存放内容即可。

声明:此处读取数据来源为iteye一篇博客,使用了其代码,虽然方法很老,但是解决问题了,要把这个问题涉及的知识点好好看一下梳理一下。


全部实现代码如下:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;

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.client.params.HttpClientParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;

public class ReadingWebContent {  
	/**
	 * 
	 * @param url
	 * @return
	 * @throws Exception
	 */
    public static String getContent(String url) throws Exception{ 
    	String CONTENT_CHARSET = "UTF-8";
        String backContent = null;  
//        private static final END_OBJECT = "0";
        String eND_OBJECT = "0";
       
        HttpClient httpclient = null;  
        HttpGet httpget = null;   
        try {  
            
            HttpParams params = new BasicHttpParams();  
             
            HttpConnectionParams.setConnectionTimeout(params, 180 * 1000);  
            HttpConnectionParams.setSoTimeout(params, 180 * 1000);  
            HttpConnectionParams.setSocketBufferSize(params, 8192);  
            
            HttpClientParams.setRedirecting(params, false);  
                
            httpclient = new DefaultHttpClient(params);  
           
            httpget = new HttpGet(url);       			httpclient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, CONTENT_CHARSET);  
            HttpResponse response = httpclient.execute(httpget);   
            
            HttpEntity entity = response.getEntity();  
            if (entity != null) {              
                
                InputStream is = entity.getContent();  
                BufferedReader in = new BufferedReader(new InputStreamReader(is));   
                StringBuffer buffer = new StringBuffer();   
                String line = "";  
                while ((line = in.readLine()) != null) {  
                    buffer.append(line);  
                }  
               
                backContent = buffer.toString();  
            }  
        } catch (Exception e) {  
            httpget.abort();  
            backContent = "���쳣,��ȡ����";     
            System.out.println("-------------�쳣��ʼ");  
            e.printStackTrace();  
            System.out.println("-------------�쳣����");  
        }finally{  
            
            if(httpclient != null)  
                httpclient.getConnectionManager().shutdown();  
        }           
        return backContent;  
    }  

    @SuppressWarnings("static-access")  
    public static void main(String[] args) throws Exception{  
        ReadingWebContent a = new ReadingWebContent();  
        String address = a.getContent("http://www.aaa/Bbb/ccclist.json
       
        String data = address.substring(address.indexOf("result") + 8, address.length() -1 );
        ObjectMapper mapper = new ObjectMapper();
        List<Company> list = mapper.readValue(data, new TypeReference<List<Company>>(){});

        for (int i = 0; i < list.size(); i++) {
			
        	System.out.println(list.get(i).getCompany_id());
        	System.out.println(list.get(i).getCompany_name());
		}
        System.out.println(list.size());

    }  
}  


3
1
分享到:
评论
2 楼 yu_duo 2012-09-25  
jinnianshilongnian 写道
呵呵 终于搞定了啊

恩~~非常感谢你的指导~~~
1 楼 jinnianshilongnian 2012-09-25  
呵呵 终于搞定了啊

相关推荐

    Java读取json文件,并转化为map取值

    这就是如何在Java中读取JSON文件并将其转化为Map进行取值的基本步骤。在实际开发中,你可能需要处理更复杂的JSON结构,包括嵌套的对象和数组,以及各种类型的值。Jackson库提供了丰富的API来应对这些情况,如`@...

    json格式转换为java实体类,idea导入即可

    接下来,你可以按照以下步骤将JSON转换为Java实体类: 1. 创建一个包含JSON数据的字符串,或者导入一个JSON文件到IDEA项目中。 2. 复制该JSON数据。 3. 使用IDEA的快捷键或找到插件入口,通常是在“Code”菜单下,...

    Java数据格式转换成json

    ### Java 数据格式转换成 JSON 的全面解析 #### 一、JSON 概述 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,最初由 Douglas Crockford 提出。它基于 JavaScript 的语法,但独立于任何编程语言...

    java将grib2数据转为json格式

    java将grib2数据转为json格式,附操作说明,grib2数据文件以及转换后的json文件,数据来源为https://nomads.ncep.noaa.gov/gribfilter.php?ds=gfs_0p25 ECMWF数据由于调整过grib2数据格式,所以不支持解析ECMWF开放...

    Java 实现Redis存储复杂json格式数据并返回给前端

    本篇文章主要探讨如何在Java中存储和检索复杂JSON格式的数据到Redis,并将其返回给前端。以下是实现这一功能的关键知识点: 1. **Redis基本操作**:Redis是一个开源的内存数据结构存储系统,可以当作数据库、缓存和...

    java解析DWG文件为json使用superMap

    SuperMap iObjects Java是一款强大的GIS(地理信息系统)开发工具,能够处理多种地理数据格式,包括DWG。下面我们将逐步介绍开发环境的配置、类路径设置、Eclipse项目的构建以及运行示例程序。 首先,确保你已经...

    Springboot读取本地json文件工程

    2. **使用Jackson库**:Jackson是Java最常用的JSON处理库之一,它可以方便地将JSON文本转换为Java对象。首先,需要在`pom.xml`文件中引入Jackson依赖,然后使用`ObjectMapper`类读取JSON文件: ```xml &lt;!-- 在pom....

    Java_读写json格式的文件方法详解

    在 Java 中,读写 JSON 格式的文件主要分为三步:第一步是读取文件内容,第二步是将文件内容格式化成 JSON 对象,第三步是将 JSON 对象转换成 Java 对象。 首先,需要了解 JSON 格式的基本结构,JSON 格式由键值对...

    json格式转换包

    - JSON数据的解析:读取JSON格式的文件或字符串,并将其转化为Java对象。 - JSON数据的生成:从Java对象生成JSON格式的字符串或文件。 - 数据转换:可能提供了将特定数据结构(如CSV、XML)转换为JSON的功能。 - ...

    Java中将Json文件解析为Java类

    在Java开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛用于前后端数据传输。而将JSON数据解析成Java类是常见的处理方式,这使得数据可以直接映射到Java对象上,便于进一步的操作和...

    java实现http请求以及解析json与java对象转换 项目源代码实例

    在Java中,处理JSON数据通常依赖于第三方库,如Jackson、Gson或org.json。这些库提供了将Java对象转换为JSON字符串,以及将JSON字符串反序列化为Java对象的功能。项目源代码可能会包含如何创建JSON对象、解析JSON...

    java处理JSON数据

    本教程将深入探讨Java中处理JSON数据的方法,包括解析JSON字符串、创建JSON对象、遍历JSON结构以及序列化和反序列化。 一、JSON简介 JSON是一种易于阅读和编写的数据格式,同时被大多数编程语言支持。它基于...

    grib2json--grib2文件转换成json格式

    标题 "grib2json -- 将grib2文件转换为json格式" 描述...综上所述,grib2json转换涉及到气象数据存储格式、数据解析技术、json数据交换格式以及软件工具的使用,对于理解和处理气象数据的科研和业务工作具有重要意义。

    java 解析 json文件 java 解析 json文件

    2. Gson:Gson是Google提供的库,能够将Java对象转换为JSON格式的字符串,以及将JSON数据转换回等效的Java对象。Gson的主要优势在于其简单易用的API。 3. JSON-P(Java API for JSON Processing):这是Java标准API...

    使用递归循环读取省市区json文件数据,并保存到数据库中

    例如,`json.load()`函数用于将JSON格式的文本数据读取为Python对象,`json.dumps()`则将Python对象转换为JSON字符串。在本例中,我们需要读取的JSON文件可能包含省市区的层级结构,如中国-&gt;省份-&gt;城市-&gt;区县,这种...

    json数据格式转换

    ### JSON 数据格式转换详解 #### 一、JSON 数据格式简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但独立于...

    java读取json格式3层树结构数据.zip

    在Java编程中,处理JSON(JavaScript Object Notation)格式的数据是一项常见的任务,特别是在与Web服务交互、存储配置信息或序列化对象时。本教程将详细讲解如何使用Java解析具有3层树结构的JSON数据,并扩展到更多...

    json处理总结.docx

    JSON处理是指将JSON数据转换为其他数据格式或从其他数据格式转换为JSON数据的过程。在本文中,我们将讨论JSON处理的基本概念、JSON处理的方法和技术,以及在Java中使用FastJSON和Jackson进行JSON处理。 一、JSON...

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

    在Java开发中,数据交换和存储常常涉及到JSON(JavaScript Object Notation)格式,因为它轻量级、易读写且被广泛支持。`net.sf.json.JSONObject`是开源库Apache Commons的一个组件,提供了Java对象与JSON对象之间的...

    Jackson将json string转为Object,org.json读取json数组的实例

    描述中提到了一个实例,也就是使用Jackson库将JSON字符串转换为Java对象(Map),然后使用org.json库读取JSON数组。实例中说明了遇到的困难,即在使用Map读取第一级数据之后,尝试读取数组中的特定值时遇到了问题,...

Global site tag (gtag.js) - Google Analytics