alibaba / fastjson2

🚄 FASTJSON2 is a Java JSON library with excellent performance.
Apache License 2.0
3.75k stars 485 forks source link

JSONObject通过下标获取对应的值 #3135

Open lilanlong opened 2 days ago

lilanlong commented 2 days ago

请描述您的需求或者改进建议

现在JSONObject是继承LinkedHashMap实现的,是有序的,我想通过下标来获取JSONObject中的值。

请描述你建议的实现方案

现在Map中的key是通过Set存储的,无法通过下标获取key,进而获得相应的值,我想在JSONObject类中增加ArrayList来维护Map的key,在增加或者删除值的时候,都来更新这个ArrayList,这样就很容易实现通过下标获取对应的值了,不知道是否可行。

描述您考虑过的替代方案

对您考虑过的任何替代解决方案或功能的描述。

附加信息

如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。

wenshao commented 2 hours ago

为什么有这个需求?java.util.LinkedHashMap也不会提供下标获取值的接口

lilanlong commented 2 hours ago

是的,LinkedHashMap的确没有提供,只是在工作开发过程中,有些SQL非常复杂,公司也没有定义实体来接收SQL查询返回的值,而是用JSONObject直接接收了,SQL中的别名也没有规律,反而通过下标取值更加方便,当然我们可以通过keySet来找到与下标的关系,但是性能上损耗的比较多。