【问题标题】:Write a java program to get JSON data from URL编写java程序从URL获取JSON数据
【发布时间】:2014-08-25 10:51:59
【问题描述】:

1) 编写java程序从URL获取JSON数据 http://echo.jsontest.com/Operand1/10/Operand2/5/Operator/+

2) 从上述 URL 读取 JSON 并打印结果后,在 Java 中执行数学运算。

以上网址示例

结果 = 10+5 = 15

3) 结果应该是动态的,如果我们更改上述 URL 中的值,结果应该会发生变化

【问题讨论】:

标签: json


【解决方案1】:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.Scanner;

import org.json.JSONException;
import org.json.JSONObject;

public class JsonReader {

  private static String readAll(Reader rd) throws IOException {
    StringBuilder sb = new StringBuilder();
    int cp;
    while ((cp = rd.read()) != -1) {
      sb.append((char) cp);
    }
    return sb.toString();
  }

  public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {

      InputStream is = new URL(url).openStream();
    try {
      BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
      String jsonText = readAll(rd);
      JSONObject json = new JSONObject(jsonText);
      return json;
    } finally {
      is.close();
    }
  }

  public static void main(String[] args) throws IOException, JSONException {
      Scanner in = new Scanner(System.in);
      System.out.println("Enter the JSON URL :");
      String url = in.next();
    JSONObject json = readJsonFromUrl(url);
    int op1= Integer.parseInt((String)json.get("Operand1"));
    int op2= Integer.parseInt((String)json.get("Operand2"));
    int result = op1+op2;
    System.out.println("Result is : "+ result);
  }


}

【讨论】:

  • 可能有些cmets不会影响理解。
猜你喜欢
  • 1970-01-01
  • 2017-12-17
  • 2019-01-19
  • 2012-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-06
  • 1970-01-01
相关资源
最近更新 更多