json中key 必须是 string类型,包括JSONObject和JSONArray(即由一个string对应到array)
否则会抛异常,如标题所示
我之前遇到了这个问题,错在两个地方
1. HashMap<String, Object>
HashMap对象中 key 使用的是 Integer,所以 JSONObject.fromObject()抛异常,告知key must be strings, 因为 HashMap中的 key 不经过字符串转换,而是直接映射成 json中的 key,这时出现 key 为 Integer,而不是 string
2. 不能使用 toString()方法
HashMap.toString()将 对象转换成 key=value 形式, 整体成一个字符串,而不是 key-value映射,缺少value
否则会抛异常,如标题所示
我之前遇到了这个问题,错在两个地方
1. HashMap<String, Object>
HashMap对象中 key 使用的是 Integer,所以 JSONObject.fromObject()抛异常,告知key must be strings, 因为 HashMap中的 key 不经过字符串转换,而是直接映射成 json中的 key,这时出现 key 为 Integer,而不是 string
2. 不能使用 toString()方法
HashMap.toString()将 对象转换成 key=value 形式, 整体成一个字符串,而不是 key-value映射,缺少value
JSON Key 类型解析

本文解析了JSON格式中Key必须为字符串类型的原因,并通过实例介绍了如何避免因使用错误的数据类型而导致的异常。针对HashMap<String,Object>的使用场景,强调了正确的数据类型对于JSON序列化的重要性。
5010

被折叠的 条评论
为什么被折叠?



