如何获取yahoo news feed api输出的JSON数据

时间:2016-06-08 12:13:03

标签: json rss

我正在处理雅虎新闻Feed数据,我希望我的输出采用JSON格式。我在这里使用" rss news feed api "获取雅虎新闻数据。因此,默认情况下,RSS提要的输出将采用XML格式,但我希望输出为JSON格式。

这是我正在处理的代码。

import java.net.URL;
import java.io.*;
import javax.net.ssl.HttpsURLConnection;
//import java.net.HttpURLConnection;

public class JavaHttpsExample {
public static void main(String[] args) throws Exception {

    String httpsURL = "http://news.yahoo.com/rss/us";

    URL myurl = new URL(null, httpsURL, new sun.net.www.protocol.https.Handler());
    HttpsURLConnection con = (HttpsURLConnection) myurl.openConnection();
    InputStream ins = con.getInputStream();
    InputStreamReader isr = new InputStreamReader(ins);
    BufferedReader in = new BufferedReader(isr);

    String inputLine;

    while ((inputLine = in.readLine()) != null) {
        System.out.println(inputLine);
    }

    in.close();
} } 

我还在url中添加了format = json以将输出作为JSON。但是我做到这一点并没有成功。

http://news.yahoo.com/rss/us?format=json

我尝试了很多方法,这反过来导致了失败。任何人都可以帮助我获得JSON输出。

2 个答案:

答案 0 :(得分:0)

我认为你想要输出= json而不是format = json 从这里得到https://developer.yahoo.com/javascript/json.html#output

!纠错! 实际上RSS是xml,所以我不认为你可以直接。您可以使用实际的yahoo api调用而不是使用RSS提要来尝试。 我确实找到了要转换的东西,但我不能说它的质量 http://ejohn.org/projects/rss2json/

答案 1 :(得分:0)

我通过将获得的XML输出转换为JSON来获得JSON输出。这是我遵循的程序

    String inputLine = null;
        try {
            while ((inputLine = in.readLine()) != null)    {                        
            newline+=inputLine; 
                    } 

    } catch(Exception e){}
    finally{System.out.println("*********XML_OUTPUT********"+newline);}

    try {
         String newline = "";JSONObject xmlJSONObj = XML.toJSONObject(newline);
         String Json = xmlJSONObj.toString();
         System.out.println("JSON OUTPUT  : "+Json);
   } catch (JSONException je) {
        System.out.println(je.toString());
    }

in.close();