아래 코드에서 colData
은 JSON String
입니다. colData-정규 표현식을 사용하여 JSON 문자열과 문자열 일치
{ "LV": [{ "V"{ "tenureSiteReg"널 "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,"userId를 "493},"CN ": 42},"LMD "20130}
지금 위의 JSON String
에 userId
값과 id
값을 일치 시키려고합니다. 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
을하려고하지 않습니다. 내가 누락 된 것이 있습니까?
어떤 생각이든 도움이 될 것입니다.
* 내가 놓친 게 있나요 *는 JSON 파서, 아마? –
@HotLicks, 위의 시나리오를 달성하기 위해 예제를 제공 할 수 있습니까? – AKIWEB
JSON을지도로 파싱합니다. 지도에서 "lv"배열의지도를 찾습니다. 배열을 반복하고 다른 맵인 "v"요소를 찾습니다. 해당 맵에서 "userId"요소를 찾습니다. –