【问题标题】:Converting LinkedIn XML data to JSON in Java在 Java 中将 LinkedIn XML 数据转换为 JSON
【发布时间】:2010-10-08 21:33:53
【问题描述】:

我正在制作一个主要由 JavaScript 和 Flash 编写的 LinkedIn 应用程序,但所有数据都来自 Java 代理。我需要 JSON 格式的数据,不幸的是 LinkedIn 只支持 XML。最好的解决方案是在服务器上将 XML 转换为 JSON,然后再将其发送回客户端,但不可否认,我的 Java 技能并不强。我的代码看起来应该可以工作,但我得到了 JSONObject 异常。

我正在使用 org.json 包来操作 XML:http://json.org/java/

这是尝试将 XML 转换为 JSON 的 Java sn-p。这并不漂亮,但我只是想在转换数据方面取得一些进展:

public static String readResponse(HttpResponse response) {
    System.out.println("Reading response...");

    try {
        BufferedReader br = new BufferedReader(new InputStreamReader(
                response.getEntity().getContent()));
        String readLine;
        String innhold = "";

        while (((readLine = br.readLine()) != null)) {
            innhold += readLine;
        }

        try {
            JSONObject myJ = new JSONObject();
            String ret = myJ.getJSONObject(innhold).toString();
            System.out.println(ret);

            return ret;
        } catch (Exception e) {
            System.out.println(e);
        }

        return innhold;
    } catch (IOException e) {
        System.out.println(e);
        return null;
    }
}

这是与我要转换的数据非常相似的数据:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person> 
    <first-name>First</first-name>  
    <last-name>Last</last-name>  
    <headline>My Profile</headline>      
    <site-standard-profile-request>    
    <url>http://www.linkedin.com/profile</url>  
    </site-standard-profile-request>
</person>

这是我得到的例外:

org.json.JSONException: JSONObject["<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><person>  <first-name>First<\/first-name>  <last-name>Last<\/last-name>  <headline>My Profile<\/headline>  <site-standard-profile-request>    <url>http://www.linkedin.com/profile<\/url>  <\/site-standard-profile-request><\/person>"] not found.

感谢任何帮助,谢谢!

【问题讨论】:

    标签: java xml json linkedin


    【解决方案1】:

    Mads,这就是诀窍!非常感谢,我知道有一个非常简单的解决方案,我只是没有看到。这是将 XML 字符串转换为 JSON 的神奇代码:

    String ret = XML.toJSONObject(aStringOfXml).toString();
    

    【讨论】:

      【解决方案2】:

      您似乎使用了错误的对象和方法。 JSONObject.getJSONObject() 希望您提供查找对象的键,而不是任意 XML 字符串。

      您没有与该 XML 字符串匹配的键,因此查找失败并且您收到未找到对象(具有指定键)的异常。

      您正在尝试解析 XML 并序列化为 JSON。

      我相信你可以使用XML.toJSONObject

      【讨论】:

        猜你喜欢
        • 2013-11-27
        • 2013-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-23
        • 2013-01-28
        • 1970-01-01
        相关资源
        最近更新 更多