com.alibaba.fastjson 在不知道key的情况下如何取键和值

entrySet是关键!

JSONArray akeArr = (JSONArray) result.getJSONArray("AKE");

JSONArray keywordArray = new JSONArray();

for (int i = 1; i < akeArr.size(); i++) {

JSONObject jsonObj = akeArr.getJSONObject(i);

JSONObject keywordJO = new JSONObject();

for (Map.Entry<String, Object> entry : jsonObj.entrySet()) {

          keywordJO.put("word", entry.getKey());

          keywordJO.put("weight", entry.getValue());

 }

keywordArray.add(keywordJO);

}

jo.put("keywords", keywordArray);

扩展一下,若解析json会有点问题:

解析json数据是会打乱原有数据顺序的,因为源码的排序规则是根据HASH值排序的,如果想要按照字符串顺序遍历JSON属性,需要在转换的时候指定使用LinkedHashMap代替HashMap。

//无序

JSONObject jsonObj = JSON.parseObject(jsonStr);

for (Map.Entry<String, Object> entry : jsonObj.entrySet()) {

       System.out.println(entry.getKey() + ":" + entry.getValue());

}

//有序

LinkedHashMap<String, String> jsonMap = JSON.parseObject(jsonStr, new TypeReference<LinkedHashMap<String, String>>() {

        });

for (Map.Entry<String, String> entry : jsonMap.entrySet()) {

          System.out.println(entry.getKey() + ":" + entry.getValue());

}

时间: 2024-11-10 13:09:50

com.alibaba.fastjson 在不知道key的情况下如何取键和值的相关文章

java-JAVA finally内的处理在什么情况下会影响到返回值?

问题描述 JAVA finally内的处理在什么情况下会影响到返回值? 例子如下,返回结果不同,前两个方法为finally没处理前的结果,而后一个方法的返回值为处理后的结果.请问这是为什么. public class Test { public static void main(String[] args) { System.out.println(test1()); System.out.println(test2()); System.out.println(test3()); } priv

list和map在普通情况下哪个取数据快?

问题描述 list {key:'asdf',attr:234},{key:'asdf',attr:234}map 'asdf':{attr:234},'asdf':{attr:234}有一堆这些数据在取某一项的时候 那个快点?我看map在取的时候实际也是在遍历固定顺序下应该是list快点?也就是 arraylist 和 linkedhashmap对比 解决方案 数据结构里都会充分说明:"链表"对于查询效率差,对于插入和删除效率高."哈希表"对于查询效率高但是数据结构

不知道元素个数的情况下,怎么初始化字符串数组

问题描述 不知道元素个数的情况下,怎么初始化字符串数组 string[] t = new string[] {""""""}; 不知道有多少个元素 解决方案 不知道个数就不初始化数组了,改用list或者知道了明确个数了再初始化数组 解决方案二: 一个是使用ArrayList.List,它们可以随时增加元素,一个是估算一个可能用到的最大值,比如你的数组只用到10个,就string s = new string[10]; 解决方案三: 不知道个数的情

ios-请问原生IOS程序怎么控制FLASH程序(在IP不确定的情况下)

问题描述 请问原生IOS程序怎么控制FLASH程序(在IP不确定的情况下) 小弟在做一个项目 原生的IOS程序利用局域网控制电脑的FLASH桌面程序 本来是用SOCKET解决,不过这样需要事先绑定IP和端口,但是要求是让IOS程序自动搜索FLASH服务端 所以就想用UDP广播来解决,IOS能收发UDP广播,不过我不知道FLASH程序怎么接收这种广播 网上找了好多资料,基本上UDP都是要事先绑定IP才能通讯 不知道有没有人知道该如何解决~~~ 或者有什么其他方法在不知道IP的情况下,在同一个局域网

link环境下制作一款《订餐软件》,请问如何在协单丢失的情况下建立主附单?

问题描述 link环境下制作一款<订餐软件>,请问如何在协单丢失的情况下建立主附单? link环境下制作一款<订餐软件>,请问如何在协单丢失的情况下建立主附单? 解决方案 丢失的情况下,你可以根据默认值去创建一个副本.

api-在不知道设备驱动程序API的情况下,能不能操作设备??技术上可行不?

问题描述 在不知道设备驱动程序API的情况下,能不能操作设备??技术上可行不? 设备驱动程序我有,只不过厂商拒绝提供驱动程序接口.通过Bus Hound分析驱动程序和设备之间的包文能够得到USB口上流过的数据格式,已知上面这些东西,能不能操作设备呢???技术上可行不? 求大神解答,至少告诉我可不可行. 解决方案 都已经有驱动程序了,应该是可以操作设备了,驱动程序的接口不就是按照驱动程序来的么,仔细研读一下驱动程序的I/O函数,肯定是可以操作设备的. 解决方案二: 都已经有驱动程序了,应该是可以操

Linux小白在安装centos时出现这种界面,然后不知道系统安装的情况并怎样进入界面,求解答

问题描述 Linux小白在安装centos时出现这种界面,然后不知道系统安装的情况并怎样进入界面,求解答 解决方案 你安装的是centos core,你需要安装完整版. 解决方案二: 这个界面就是CentOS的字符界面啊,如果你安装了图形界面,按Ctrl+Alt+F2好像就可以进入图形界面. 解决方案三: 好像指令不太对 没啥反应 会不会我没有安装啊 解决方案四: 然后startX指令也不起作用 解决方案五: 方法1:运行命令到图形界面 #startx , 需要先配置图形界面信息 方法2:修改/

Memcache查看列出所有key方法及memkeys实时查看key使用情况

Memcache 查看列出所有key方法 今天在做一个Memcache的session测试,但是在测试的过程中,发现Memcache没有一个比较简单的方法可以直接象redis那样keys *列出所有的Session key,并根据key get对应的session内容,于是,我开始查找资料,翻出来的大部分是一些memcache常用命令等,但是对列出key的办法,讲解却不多,于是来到google,找到了一个国外的资料 具体的内容我套用我的测试环境中,操作如下 1. cmd上登录memcache >

【BBED】丢失归档文件情况下的恢复

[BBED]丢失归档文件情况下的数据文件的恢复   1.1  BLOG文档结构图     1.2  前言部分   1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 若丢失归档情况下数据文件的恢复,bbed和隐含参数(重点) ② 数据库启动过程中的介质恢复,scn号的关系 ③ BBED如何修改文件头 ④ 归档和非归档模式下数据库的全备     Tips:        ① 若文章代码格式有错乱,推荐使用QQ