mirror of
https://github.com/stleary/JSON-java.git
synced 2025-08-03 03:15:32 -04:00
Merge pull request #995 from marilynel/master
Fix regression XML parsing null with keepStrings
This commit is contained in:
commit
f0a78aff61
@ -428,6 +428,9 @@ public class XML {
|
|||||||
config.isKeepNumberAsString()
|
config.isKeepNumberAsString()
|
||||||
? ((String) token)
|
? ((String) token)
|
||||||
: obj);
|
: obj);
|
||||||
|
} else if (obj == JSONObject.NULL) {
|
||||||
|
jsonObject.accumulate(config.getcDataTagName(),
|
||||||
|
config.isKeepStrings() ? ((String) token) : obj);
|
||||||
} else {
|
} else {
|
||||||
jsonObject.accumulate(config.getcDataTagName(), stringToValue((String) token));
|
jsonObject.accumulate(config.getcDataTagName(), stringToValue((String) token));
|
||||||
}
|
}
|
||||||
|
@ -775,8 +775,8 @@ public class XMLConfigurationTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testToJSONArray_jsonOutput_withKeepNumberAsString() {
|
public void testToJSONArray_jsonOutput_withKeepNumberAsString() {
|
||||||
final String originalXml = "<root><id>01</id><id>1</id><id>00</id><id>0</id><item id=\"01\"/><title>True</title></root>";
|
final String originalXml = "<root><id>01</id><id>1</id><id>00</id><id>0</id><id>null</id><item id=\"01\"/><title>True</title></root>";
|
||||||
final JSONObject expected = new JSONObject("{\"root\":{\"item\":{\"id\":\"01\"},\"id\":[\"01\",\"1\",\"00\",\"0\"],\"title\":true}}");
|
final JSONObject expected = new JSONObject("{\"root\":{\"item\":{\"id\":\"01\"},\"id\":[\"01\",\"1\",\"00\",\"0\",null],\"title\":true}}");
|
||||||
final JSONObject actualJsonOutput = XML.toJSONObject(originalXml,
|
final JSONObject actualJsonOutput = XML.toJSONObject(originalXml,
|
||||||
new XMLParserConfiguration().withKeepNumberAsString(true));
|
new XMLParserConfiguration().withKeepNumberAsString(true));
|
||||||
Util.compareActualVsExpectedJsonObjects(actualJsonOutput,expected);
|
Util.compareActualVsExpectedJsonObjects(actualJsonOutput,expected);
|
||||||
@ -787,13 +787,25 @@ public class XMLConfigurationTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testToJSONArray_jsonOutput_withKeepBooleanAsString() {
|
public void testToJSONArray_jsonOutput_withKeepBooleanAsString() {
|
||||||
final String originalXml = "<root><id>01</id><id>1</id><id>00</id><id>0</id><item id=\"01\"/><title>True</title></root>";
|
final String originalXml = "<root><id>01</id><id>1</id><id>00</id><id>0</id><id>null</id><item id=\"01\"/><title>True</title></root>";
|
||||||
final JSONObject expected = new JSONObject("{\"root\":{\"item\":{\"id\":\"01\"},\"id\":[\"01\",1,\"00\",0],\"title\":\"True\"}}");
|
final JSONObject expected = new JSONObject("{\"root\":{\"item\":{\"id\":\"01\"},\"id\":[\"01\",1,\"00\",0,null],\"title\":\"True\"}}");
|
||||||
final JSONObject actualJsonOutput = XML.toJSONObject(originalXml,
|
final JSONObject actualJsonOutput = XML.toJSONObject(originalXml,
|
||||||
new XMLParserConfiguration().withKeepBooleanAsString(true));
|
new XMLParserConfiguration().withKeepBooleanAsString(true));
|
||||||
Util.compareActualVsExpectedJsonObjects(actualJsonOutput,expected);
|
Util.compareActualVsExpectedJsonObjects(actualJsonOutput,expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* null is "null" when keepStrings == true
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testToJSONArray_jsonOutput_null_withKeepString() {
|
||||||
|
final String originalXml = "<root><id>01</id><id>1</id><id>00</id><id>0</id><item id=\"01\"/><title>null</title></root>";
|
||||||
|
final JSONObject expected = new JSONObject("{\"root\":{\"item\":{\"id\":\"01\"},\"id\":[\"01\",\"1\",\"00\",\"0\"],\"title\":\"null\"}}");
|
||||||
|
final JSONObject actualJsonOutput = XML.toJSONObject(originalXml,
|
||||||
|
new XMLParserConfiguration().withKeepStrings(true));
|
||||||
|
Util.compareActualVsExpectedJsonObjects(actualJsonOutput,expected);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test keepStrings behavior when setting keepBooleanAsString, keepNumberAsString
|
* Test keepStrings behavior when setting keepBooleanAsString, keepNumberAsString
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user