java读取接口返回的json数据 (二)

简介: java读取接口返回的json数据 (二)

注释文本可以全部删除,

java读取 其他服务接口 返回的json数据

package cn.wangshiyu777;
 
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
 
import org.junit.Test;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
 
 
 
public class JsonUtil {
  public static String loadJson(String url) throws Exception {
    //读取url,返回json串
    StringBuilder json = new StringBuilder();
    URL oracle = new URL(url);
    URLConnection yc = oracle.openConnection();
    BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
    String inputLine = null;
    while((inputLine = in.readLine()) != null){
      json.append(inputLine);
    }
    in.close();
    
    return json.toString();
  }
  public static void main(String[] args) throws Exception {
    String url = "http://api.geonames.org/citiesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&lang=de&username=demo";
    //
    String json = loadJson(url);
    System.out.println(json);
    //获取json字符串中key对应的值
//    JsonParser jsonParser = new JsonParser();
    //将json字符串转化成json对象
//    JsonObject jObject = jsonParser.parse(json).getAsJsonObject();
    //获取对应字段值
//    String topic = jObject.get("Topic").getAsString();
//    System.out.println("Topic:"+topic);
    
//    第二种
//    JSONArray js = new JSONArray(json);
//    for (int i = 0; i < js.length(); i++) {
//      JSONObject json1 = js.getJSONObject(i);
//      System.out.println(json1.getString("Topic"));
//    }
    
    //第三种有错
//    JSONObject jsonObject = JSON.parseObjet(json);
//    String r = jsonObject.getString("Topic");
//    System.out.println(r);
    
    //第四种
//    JSONObject json1 = new JSONObject(json);
//    String Value = json1.getString("Topic");
//    System.out.println(Value);
    
    JSONArray jsonArray = JSONArray.fromObject(json);
 
    //JSONArray jsonArray = JSONArray.fromObject(URLDecoder.decode(request.getParameter("rejectAry"),"UTF-8"));
    System.out.println(jsonArray);
    for (int i = 0; i < jsonArray.length(); i++) {
      JSONObject json1 = jsonArray.getJSONObject(i);
      System.out.println(json1.getString("Topic"));
    }
  }
  @Test
  public void aaa() throws UnsupportedEncodingException {
    String string  = new String("北京".getBytes("utf-8"),"unicode");
    String aString = new String(string.getBytes("unicode"), "utf-8");
    System.out.println(aString);
  }
}

以下问题是我遇到的,记录在下面


使用JSON,在SERVLET或者STRUTS的ACTION中取得数据时


如果会出现异常:java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher


原因是少了JAR包,造成类找不到


除了要导入JSON网站上面下载的json-lib-2.1.jar包之外,


还必须有其它几个依赖包:


commons-beanutils.jar


commons-httpclient.jar


commons-lang.jar


ezmorph.jar


morph-1.0.1.jar


把里面的包都加上就没事了


如有问题,随时可以留言

目录
打赏
0
5
5
1
137
分享
相关文章
如何在Python中高效实现CSV到JSON的数据转换
在实际项目中,数据格式转换是常见问题,尤其从CSV到JSON的转换。本文深入探讨了多种转换方法,涵盖Python基础实现、数据预处理、错误处理、性能优化及调试验证技巧。通过分块处理、并行处理等手段提升大文件转换效率,并介绍如何封装为命令行工具或Web API,实现自动化批量处理。关键点包括基础实现、数据清洗、异常捕获、性能优化和单元测试,确保转换流程稳定高效。
100 82
Java爬虫获取微店快递费用item_fee API接口数据实现
本文介绍如何使用Java开发爬虫程序,通过微店API接口获取商品快递费用(item_fee)数据。主要内容包括:微店API接口的使用方法、Java爬虫技术背景、需求分析和技术选型。具体实现步骤为:发送HTTP请求获取数据、解析JSON格式的响应并提取快递费用信息,最后将结果存储到本地文件中。文中还提供了完整的代码示例,并提醒开发者注意授权令牌、接口频率限制及数据合法性等问题。
|
19天前
|
使用Java和Spring Data构建数据访问层
本文介绍了如何使用 Java 和 Spring Data 构建数据访问层的完整过程。通过创建实体类、存储库接口、服务类和控制器类,实现了对数据库的基本操作。这种方法不仅简化了数据访问层的开发,还提高了代码的可维护性和可读性。通过合理使用 Spring Data 提供的功能,可以大幅提升开发效率。
62 21
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
36 5
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
1月前
|
解析电商商品详情API接口系列,json数据示例参考
电商商品详情API接口是电商平台的重要组成部分,提供了商品的详细信息,支持用户进行商品浏览和购买决策。通过合理的API设计和优化,可以提升系统性能和用户体验。希望本文的解析和示例能够为开发者提供参考,帮助构建高效、可靠的电商系统。
41 12
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
50 7
【潜意识Java】深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
64 1
|
1月前
|
java怎么统计每个项目下的每个类别的数据
通过本文,我们详细介绍了如何在Java中统计每个项目下的每个类别的数据,包括数据模型设计、数据存储和统计方法。通过定义 `Category`和 `Project`类,并使用 `ProjectManager`类进行管理,可以轻松实现项目和类别的数据统计。希望本文能够帮助您理解和实现类似的统计需求。
106 17
利用Java获取京东SKU接口指南
本文介绍如何使用Java通过京东API获取商品SKU信息。首先,需注册京东开放平台账号并创建应用以获取AppKey和AppSecret。接着,查阅API文档了解调用方法。明确商品ID后,构建请求参数并通过HTTP客户端发送请求。最后,解析返回的JSON数据提取SKU信息。注意遵守API调用频率限制及数据保护法规。此方法适用于电商平台及其他数据获取场景。