代码之家  ›  专栏  ›  技术社区  ›  Ori Marko

输入空值时出现JSON java编译错误

  •  0
  • Ori Marko  · 技术社区  · 6 年前

    我有以下(工作代码)与 old JSONObject jar

    String title = "title";
    return new JSONObject()
                    .put("title", title).put("url", null)));
    

    当我开始使用 latest jar from JSON-java

    我得到一个编译错误

    The method put(String, Collection<?>) is ambiguous for the type JSONObject
    

    我找到了一个 issue 建议使用 JSONObject.NULL 而不是 null

    此库有一个独特的JSONObject.NULL常量,用于存储JSON空值。这是故意的。Java空值在这个库中被视为JavaScript未定义。

    但是没有中间的方法来支持这两个JSON版本? JSON-java 项目,还是我遗漏了什么,或者只是使用了不受支持的旧版本?

    1 回复  |  直到 4 年前
        1
  •  1
  •   Aditya Narayan Dixit    6 年前

    put("", null) JSONObject类中的三个方法中的任何一个都可以: put(String key, Object value) , put(String key, Collection<?> value) put(String key, Map<?, ?> value) . 因此,它不能再用于最新版本的 org.json 图书馆为了克服这个问题,他们定义了一个静态类 Null 他们自己的: org.json.JSONObject.Null 当用于 put 将呼叫 方法