This commit is contained in:
Looly 2025-01-24 16:33:03 +08:00
parent b7b5fbea71
commit 3798347369

View File

@ -106,19 +106,19 @@ public class JSONObjectTest {
// putAll操作会覆盖相同key的值因此a,b两个key的值改变c的值不变 // putAll操作会覆盖相同key的值因此a,b两个key的值改变c的值不变
json1.putAll(json2); json1.putAll(json2);
assertEquals(json1.getObj("a"), "value21"); assertEquals("value21", json1.getObj("a"));
assertEquals(json1.getObj("b"), "value22"); assertEquals("value22", json1.getObj("b"));
assertEquals(json1.getObj("c"), "value3"); assertEquals("value3", json1.getObj("c"));
} }
@Test @Test
public void parseStringTest() { public void parseStringTest() {
final String jsonStr = "{\"b\":\"value2\",\"c\":\"value3\",\"a\":\"value1\", \"d\": true, \"e\": null}"; final String jsonStr = "{\"b\":\"value2\",\"c\":\"value3\",\"a\":\"value1\", \"d\": true, \"e\": null}";
final JSONObject jsonObject = JSONUtil.parseObj(jsonStr, JSONConfig.of().setIgnoreNullValue(false)); final JSONObject jsonObject = JSONUtil.parseObj(jsonStr, JSONConfig.of().setIgnoreNullValue(false));
assertEquals(jsonObject.getObj("a"), "value1"); assertEquals("value1", jsonObject.getObj("a"));
assertEquals(jsonObject.getObj("b"), "value2"); assertEquals("value2", jsonObject.getObj("b"));
assertEquals(jsonObject.getObj("c"), "value3"); assertEquals("value3", jsonObject.getObj("c"));
assertEquals(jsonObject.getObj("d"), true); assertEquals(true, jsonObject.getObj("d"));
Assertions.assertTrue(jsonObject.containsKey("e")); Assertions.assertTrue(jsonObject.containsKey("e"));
assertNull(jsonObject.get("e")); assertNull(jsonObject.get("e"));
@ -762,4 +762,16 @@ public class JSONObjectTest {
}); });
assertEquals("value2_edit", jsonObject.getObj("b")); assertEquals("value2_edit", jsonObject.getObj("b"));
} }
@Test
void issue3844Test(){
// json string key to underline-case
final String camelCaseStr = "{\"userAge\":\"123\"}";
final JSONObject entries = JSONUtil.parseObj(camelCaseStr, null, (entry) -> {
entry.setKey(StrUtil.toUnderlineCase(StrUtil.toString(entry.getKey())));
return true;
});
assertEquals("{\"user_age\":\"123\"}", entries.toString());
}
} }