나는 oldId
과 newId
을 가지고 있으며 oldId
을 newId
으로 바꿉니다. 내가 가지고있는 위의 코드와숫자를 중간에 수정하지 않고 완전 교체하는 방법은 무엇입니까?
public static void main(String[] args) {
String jsonString = "{\"user_id\":{\"long\":876},\"client_id\":{\"int\":0},\"affinity\":[{\"try\":{\"long\":55787693},\"scoring\":{\"float\":0.19}},{\"try\":{\"long\":1763},\"scoring\":{\"float\":0.0114}}]}";
// some other json strings -
// String jsonString = "{\"user_id\":{\"string\": \"876\"},\"client_id\":{\"int\":0},\"affinity\":[{\"try\":{\"long\":55787693},\"scoring\":{\"float\":0.19}},{\"try\":{\"long\":1763},\"scoring\":{\"float\":0.0114}}]}";
// String jsonString = "{\"user_id\": \"876\", \"client_id\":{\"int\":0},\"affinity\":[{\"try\":{\"long\":55787693},\"scoring\":{\"float\":0.19}},{\"try\":{\"long\":1763},\"scoring\":{\"float\":0.0114}}]}";
// String jsonString = "{\"user_id\": 876, \"client_id\":{\"int\":0},\"affinity\":[{\"try\":{\"long\":55787693},\"scoring\":{\"float\":0.19}},{\"try\":{\"long\":1763},\"scoring\":{\"float\":0.0114}}]}";
// String jsonString = "{\"user_id\": null, \"client_id\":{\"int\":0},\"affinity\":[{\"try\":{\"long\":55787693},\"scoring\":{\"float\":0.19}},{\"try\":{\"long\":1763},\"scoring\":{\"float\":0.0114}}]}";
String newResponse = changeJsonString(jsonString, "876", "54321");
System.out.println(newResponse);
}
private static String changeJsonString(String originalResponse, String oldId, String newId) {
return originalResponse.replaceAll(String.valueOf(oldId), String.valueOf(newId));
}
, 그것뿐만 newResponse
인쇄됩니다 - 당신이 자세히 보면
{\"user_id\":{\"long\":54321},\"client_id\":{\"int\":0},\"affinity\":[{\"matter\":{\"long\":5575432193},\"scoring\":{\"float\":0.19}},{\"try\":{\"long\":1763},\"scoring\":{\"float\":0.0114}}]}
을, 두 개의 필드가 변화를 가지고, 하나는 user_id
와 두 번째 matter
replaceAll
때문에이 모든 것을 대체 할 것이다 새로운 것. 그것은 단지 새로운 번호의 전체 수를 교체해야하는 대신 임의의 수를 수정 -
- USER_ID 876은 내가 무엇을 찾고 있어요 것은 5,575,432,193
로 변경되었다 54321
user_id
876
은 전체 숫자이므로 876
만 54321
이 아니고 matter
이 아니고 876이 중간에 있어야합니다. 일반적으로 새 번호로 완전히 대체하고 싶습니다. 나는 중간에 뭔가를 대체하고 싶지 않아. 이 일을 할 수있는 방법이 있습니까?
* todd의 접근법을 사용하십시오. – user2469515
@ user2469515 내 기본 방법으로 주석 처리 한 다른 jsonString과는 작동하지 않습니다. – john
1. JSON 라이브러리를 사용하여 JSON을 오브젝트 트리로 디코딩하십시오. 2. 오브젝트 트리에서 번호를 변경하십시오. 3. JSON 라이브러리를 사용하여 오브젝트 트리를 다시 JSON으로 변환하십시오. – immibis