java.lang.String 无法转换为 org.json.simple.JSONObject simple-json

标签 java json simplejson

我在尝试使用 google 的 simple-json 解析一个简单的 json 时遇到了一个奇怪的问题。

这是我的代码,它不起作用:

String s = args[0].toString();
JSONObject json = (JSONObject)new JSONParser().parse(s);

当我执行时,它会给我异常 java.lang.String cannot be cast to org.json.simple.JSONObject

但是当我像下面这样直接对 json 进行硬编码时,它工作正常。可能是什么原因?

JSONObject json = (JSONObject)new JSONParser().parse("{\"application\":\"admin\",\"keytype\":\"PRODUCTION\",\"callbackUrl\":\"qwerewqr;ewqrwerq;qwerqwerq\",\"authorizedDomains\":\"ALL\",\"validityTime\":\"3600000\",\"retryAfterFailure\":true}");

更新

当我打印 s 时,它会给我以下输出:

"{\"application\":\"admin\",\"keytype\":\"PRODUCTION\",\"callbackUrl\":\"qwerewqr;ewqrwerq;qwerqwerq\",\"authorizedDomains\":\"ALL\",\"validityTime\":\"3600000\",\"retryAfterFailure\":true}"

最佳答案

我通过在 run configuration 中提供 arguments 来运行它。

 public static void main(String[] args) {
        String s = args[0].toString();
        System.out.println("=>" + s);
        try {
            JSONObject json = (JSONObject) new JSONParser().parse(s);
            System.out.println(json);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

输出

=>{"application":"admin","keytype":"PRODUCTION","callbackUrl":"qwerewqr;ewqrwerq;qwerqwerq","authorizedDomains":"ALL","validityTime":"3600000","retryAfterFailure":true}


{"validityTime":"3600000","callbackUrl":"qwerewqr;ewqrwerq;qwerqwerq","application":"admin","retryAfterFailure":true,"authorizedDomains":"ALL","keytype":"PRODUCTION"}

关于java.lang.String 无法转换为 org.json.simple.JSONObject simple-json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25567041/

相关文章:

使用 simpleJSon 创建数组数组的 Java 代码

java - 如何使用 Netty 关闭异步 Http 请求的 AsyncHttpClient?

java - android java中可能的宏

java - 从一系列偏移量之间的 Kafka 主题读取消息

java - Spring 数据 : rollback transaction on retry

jquery - 来自 jQuery get 的 JSON 响应引发 "Invalid label"

java - 在php中创建JSONArray并将其发送到android

python - 我一直在编辑 json 文件,但文件本身没有更新(python)

javascript - Django : View returns JSON content_dictionary, 如何在 Javascript 中解码

c# - Int64 在使用 SimpleJSON 传递到函数时会更改值