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


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


如有问题,随时可以留言

目录
相关文章
|
12天前
|
前端开发 JavaScript Java
java常用数据判空、比较和类型转换
本文介绍了Java开发中常见的数据处理技巧,包括数据判空、数据比较和类型转换。详细讲解了字符串、Integer、对象、List、Map、Set及数组的判空方法,推荐使用工具类如StringUtils、Objects等。同时,讨论了基本数据类型与引用数据类型的比较方法,以及自动类型转换和强制类型转换的规则。最后,提供了数值类型与字符串互相转换的具体示例。
|
12天前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
59 25
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
|
3天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
26 6
|
18天前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
23 3
|
20天前
|
Java API
Java中内置的函数式接口
Java中内置的函数式接口
20 2
|
24天前
|
Java
在Java中如何实现接口?
实现接口是 Java 编程中的一个重要环节,它有助于提高代码的规范性、可扩展性和复用性。通过正确地实现接口,可以使代码更加灵活、易于维护和扩展。
46 3
|
23天前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
66 1
|
23天前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
46 1
|
23天前
|
Java
在Java中实现接口的具体代码示例
可以根据具体的需求,创建更多的类来实现这个接口,以满足不同形状的计算需求。希望这个示例对你理解在 Java 中如何实现接口有所帮助。
37 1