在我的下面的代码中,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