在我的下面的代碼中,colData
存儲JSON String
。對於colData-使用常規表達式將字符串與JSON字符串相匹配
{ 「LV」:[{ 「V」:{ 「tenureSiteReg」:NULL, 「bghtItms」:48, 「pnlValue」:105.478409, 「byrSgmnt」:2 「cstmrId」 : 「814296998」, 「slrRevRnk」: - 99.0, 「soldItms」:0 「slrSgmnt」:6, 「byrRevRnk」:0.013, 「mainAcct」:78, 「GMV」:0.0 「cstmrRevRnk」:0.021,「pnlRev 「:313.438843,」 cstmrSgmnt 「:51,」 GMB 「:4674.76,」 totalVal 「:142.536293,」 用戶id 「:493},」 CN 「:42}],」 LMD「:20130}
現在我試圖在上面的JSON String
中匹配id
值與userId
值。 含義如果id
的值爲493
那麼在上面的JSON字符串中userId
的值也應該是493
。而在JSON字符串中,可能有很多userId values
,因此所有的userId
值都應與id
匹配。如果其中任何一個不匹配,則記錄異常。
所以我試圖像這 -
private static final Pattern USER_ID_PATTERN = Pattern.compile("userId:\\d+");
for (String str : colData) {
Matcher matcher = USER_ID_PATTERN.matcher(str);
while (matcher.find()) {
if (!matcher.group().equals("userId:"+id))
System.out.println("LOG exception");
}
}
但對於上述JSON字符串,它是不會裏面while loop
也。有什麼我失蹤?
任何想法都會有很大的幫助。
*有什麼我缺少* A JSON解析器,也許? – 2013-03-03 01:12:35
@HotLicks,你能否給我提供一個例子來實現上述場景? – AKIWEB 2013-03-03 01:21:51
將JSON解析爲地圖。在地圖中找到「lv」地圖數組。遍歷數組並找到「v」元素,這是另一張地圖。在該地圖內找到「userId」元素。 – 2013-03-03 02:12:42