`

json-lib 实际使用中发生的错误

阅读更多

1. 使用json-lib时,完全相同的代码,在一个项目中可以正常使用。

在别的项目中报以下错误信息:

 

系统发生运行期异常:
错误代码: net.sf.json.JSONException
错误信息: java.lang.ClassCastException: JSON keys must be strings.
异常位置: class :net.sf.json.JSONObject method :_fromMap line : 1357

 

提示键值key必须为string类型。

 

2. 查找可能出现问题的代码:

Map<Integer,String> timeMap=new LinkedHashMap<Integer,String>();
 

3. 仔细检查后,发现两个项目用了不同的jar包。

   报错的项目使用了   json-lib-2.3-jdk15.jar.

   而没有报错的项目使用了  json-lib-2.1-jdk15.jar

 

4. 查看 2.3的  _fromMap方法的源代码。

 

Object k = entry.getKey();
........
if( !(k instanceof String) && !jsonConfig.isAllowNonStringKeys() ) {
         throw new ClassCastException("JSON keys must be strings.");
}
........

   而2.1中并没有如此判断,原来如此。

   修改Map的key为String.

 

 

分享到:
评论

相关推荐

    json-lib应用所有jar

    在这个压缩包中,"json-lib"很可能包含了所有必要的jar文件,使得开发者无需额外寻找其他依赖,可以直接在项目中使用。 使用JSON-lib的主要优点包括: 1. **易用性**:JSON-lib提供了简单直观的API,使得Java对象...

    JSON-lib包json-lib-0.8.jar和json-lib-0.9.jar包

    在实际开发中,根据项目的具体需求,开发者可以选择适合的JSON-lib版本,并利用其提供的API来实现JSON数据的处理,提高工作效率。同时,不断关注JSON-lib的新版本和更新,以利用最新的特性和性能改进。

    json-lib-2.4和相应的依赖包

    在实际开发中,json-lib-2.4的使用通常涉及以下步骤: 1. **导入依赖**:将json-lib-2.4的jar包添加到项目的类路径中,或者在Maven或Gradle等构建工具中声明依赖。 2. **创建JSON对象**:使用`...

    json-lib-2.3-jdk15开发包和所有依赖包

    `json-lib-2.3-jdk15`是这个库的一个特定版本,兼容JDK 1.5,这意味着它可以在运行JDK 1.5或更高版本的Java环境中使用。 在Java开发中,`json-lib`库提供了以下关键功能: 1. **JSON对象的创建与解析**:通过`...

    使用json-lib实现json与Java对象的互转

    要使用 `json-lib` 实现 JSON 与 Java 对象的互转,首先需要在项目中引入该库。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加如下依赖: ```xml &lt;groupId&gt;net.sf.json-lib&lt;/groupId&gt; &lt;artifactId&gt;json-lib...

    json-lib所用的jar包

    6. `commons-logging-1.1.1.jar`:Apache Commons Logging,是一个通用的日志记录抽象层,使得`json-lib`可以方便地使用不同的日志实现,如Log4j或Java内置的日志系统,进行调试和错误处理。 综上所述,`json-lib`...

    json-lib包最新合集20170403整理

    在实际使用中,为了在Java项目中使用这个json-lib包,你需要将这些jar文件添加到项目的类路径中。然后,你可以利用json-lib提供的API,如`net.sf.json.JSONObject`和`net.sf.json.JSONArray`来创建和操作JSON对象。...

    json-lib-2.4的jar包.zip

    为了在Java项目中使用`json-lib-2.4`,开发者需要按照以下步骤操作: 1. **解压JAR**:首先,你需要解压缩`json-lib-2.4的jar包.zip`,得到`json-lib-2.4.jar`文件。 2. **引入JAR**:将`json-lib-2.4.jar`添加到...

    json-lib及依赖包

    在实际开发中,如果使用`json-lib`,需要确保这些依赖项都在项目类路径中,以避免运行时出现错误。然而,随着技术的发展,现在有许多其他流行的JSON库,如Gson、Jackson和Fastjson,它们在性能和易用性方面可能更具...

    json-lib所用到的jar包

    在实际开发中,我们可以通过以下步骤使用json-lib: 1. 引入依赖的jar包到项目。 2. 创建Java对象,如一个简单的JavaBean。 3. 使用`JSONSerializer`将Java对象序列化为JSON字符串。 4. 如果需要反序列化,可以使用...

    json-lib相关所有包

    在实际开发中,使用json-lib通常涉及以下步骤: 1. **添加依赖**:首先,在项目中引入json-lib的JAR文件或通过Maven、Gradle等构建工具添加依赖。 2. **序列化**:将Java对象转换为JSON字符串,如: ```java Map...

    json-lib-2.23

    5. **兼容性**:`json-lib`支持多种Java版本,包括Java SE和Java EE,因此可以在各种Java应用环境中使用。 在实际项目中,使用`json-lib`可以显著提高开发效率,减少前后端数据交换的复杂性。然而,随着技术的发展...

    json-lib-2.2.3帮助api

    通过阅读`json-lib-2.2.3-jdk15-javadoc`中的文档,你可以深入理解每个类和方法的具体用法,包括参数、返回值、示例代码等,从而更好地在实际项目中运用json-lib处理JSON数据。此外,文档通常还包括常见问题解答和...

    json-lib_所有jar包

    通过这个"json-lib_所有jar包"的集合,开发者可以轻松地在项目中引入并使用JSON功能,而无需担心依赖问题。在实际应用中,只需根据项目需求选择合适的jar包,即可快速地实现JSON数据的处理和交换。

    使用json-lib将java对象转换成json字符串

    标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...

    json-lib-2.2.3-jdk15.jar

    在实际项目中,使用json-lib时,你需要按照以下步骤操作: 1. 将`json-lib-2.2.3-jdk15.jar` 添加到项目的类路径中,无论是通过构建工具(如Maven或Gradle)还是手动添加到项目库中。 2. 引入库的相应import语句,...

    json-lib-2.4-jdk15

    通过运行这些示例,你可以更好地了解如何在实际项目中使用`json-lib`进行JSON数据的处理。记住,实践是检验真理的唯一标准,所以尝试自己动手操作,理解每一步的作用,将有助于你掌握这个强大的工具。

    json-lib-2.4-jdk15.jar全部JAR打包直接用

    在实际应用中,`json-lib`可以用于各种用途,如服务器端向客户端发送数据,保存用户设置,或者在不同系统间交换数据。例如,在Web服务API开发中,服务器端可能使用`json-lib`将Java对象转换为JSON格式,然后通过HTTP...

    json-lib-2.4-jdk15及其依赖jar包.rar

    在Java项目中使用`json-lib`,你可以: 1. **序列化Java对象为JSON**:通过`JSONArray`或`JSONObject`类,可以将Java对象转换成JSON字符串,便于在网络间传输或存储。 ```java JSONObject jsonObject = ...

    json-lib-2.2.3-jdk15.jar有关文件

    9. **错误处理**:在使用`json-lib`时,应妥善处理可能抛出的异常,如`JSONException`,以确保程序的健壮性。 10. **最佳实践**:在处理JSON时,建议始终验证输入的JSON数据,避免潜在的安全风险,如注入攻击。 总...

Global site tag (gtag.js) - Google Analytics