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的值不变
json1.putAll(json2);
assertEquals(json1.getObj("a"), "value21");
assertEquals(json1.getObj("b"), "value22");
assertEquals(json1.getObj("c"), "value3");
assertEquals("value21", json1.getObj("a"));
assertEquals("value22", json1.getObj("b"));
assertEquals("value3", json1.getObj("c"));
}
@Test
public void parseStringTest() {
final String jsonStr = "{\"b\":\"value2\",\"c\":\"value3\",\"a\":\"value1\", \"d\": true, \"e\": null}";
final JSONObject jsonObject = JSONUtil.parseObj(jsonStr, JSONConfig.of().setIgnoreNullValue(false));
assertEquals(jsonObject.getObj("a"), "value1");
assertEquals(jsonObject.getObj("b"), "value2");
assertEquals(jsonObject.getObj("c"), "value3");
assertEquals(jsonObject.getObj("d"), true);
assertEquals("value1", jsonObject.getObj("a"));
assertEquals("value2", jsonObject.getObj("b"));
assertEquals("value3", jsonObject.getObj("c"));
assertEquals(true, jsonObject.getObj("d"));
Assertions.assertTrue(jsonObject.containsKey("e"));
assertNull(jsonObject.get("e"));
@ -762,4 +762,16 @@ public class JSONObjectTest {
});
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());
}
}