mirror of
https://github.com/stleary/JSON-java.git
synced 2026-04-04 00:00:53 -04:00
Fixes the issue of losing the array if an empty forceList element or a tag is in the middle or the end
This commit is contained in:
@@ -1144,6 +1144,114 @@ public class XMLConfigurationTest {
|
||||
Util.compareActualVsExpectedJsonObjects(jsonObject, expetedJsonObject);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testForceListWithLastElementAsEmptyTag(){
|
||||
final String originalXml = "<root><id>1</id><id/></root>";
|
||||
final String expectedJsonString = "{\"root\":{\"id\":[1]}}";
|
||||
|
||||
HashSet<String> forceListCandidates = new HashSet<>();
|
||||
forceListCandidates.add("id");
|
||||
final JSONObject json = XML.toJSONObject(originalXml,
|
||||
new XMLParserConfiguration()
|
||||
.withKeepStrings(false)
|
||||
.withcDataTagName("content")
|
||||
.withForceList(forceListCandidates)
|
||||
.withConvertNilAttributeToNull(true));
|
||||
assertEquals(expectedJsonString, json.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testForceListWithFirstElementAsEmptyTag(){
|
||||
final String originalXml = "<root><id/><id>1</id></root>";
|
||||
final String expectedJsonString = "{\"root\":{\"id\":[1]}}";
|
||||
|
||||
HashSet<String> forceListCandidates = new HashSet<>();
|
||||
forceListCandidates.add("id");
|
||||
final JSONObject json = XML.toJSONObject(originalXml,
|
||||
new XMLParserConfiguration()
|
||||
.withKeepStrings(false)
|
||||
.withcDataTagName("content")
|
||||
.withForceList(forceListCandidates)
|
||||
.withConvertNilAttributeToNull(true));
|
||||
assertEquals(expectedJsonString, json.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testForceListWithMiddleElementAsEmptyTag(){
|
||||
final String originalXml = "<root><id>1</id><id/><id>2</id></root>";
|
||||
final String expectedJsonString = "{\"root\":{\"id\":[1,2]}}";
|
||||
|
||||
HashSet<String> forceListCandidates = new HashSet<>();
|
||||
forceListCandidates.add("id");
|
||||
final JSONObject json = XML.toJSONObject(originalXml,
|
||||
new XMLParserConfiguration()
|
||||
.withKeepStrings(false)
|
||||
.withcDataTagName("content")
|
||||
.withForceList(forceListCandidates)
|
||||
.withConvertNilAttributeToNull(true));
|
||||
assertEquals(expectedJsonString, json.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testForceListWithLastElementAsEmpty(){
|
||||
final String originalXml = "<root><id>1</id><id></id></root>";
|
||||
final String expectedJsonString = "{\"root\":{\"id\":[1]}}";
|
||||
|
||||
HashSet<String> forceListCandidates = new HashSet<>();
|
||||
forceListCandidates.add("id");
|
||||
final JSONObject json = XML.toJSONObject(originalXml,
|
||||
new XMLParserConfiguration()
|
||||
.withKeepStrings(false)
|
||||
.withForceList(forceListCandidates)
|
||||
.withConvertNilAttributeToNull(true));
|
||||
assertEquals(expectedJsonString, json.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testForceListWithFirstElementAsEmpty(){
|
||||
final String originalXml = "<root><id></id><id>1</id></root>";
|
||||
final String expectedJsonString = "{\"root\":{\"id\":[1]}}";
|
||||
|
||||
HashSet<String> forceListCandidates = new HashSet<>();
|
||||
forceListCandidates.add("id");
|
||||
final JSONObject json = XML.toJSONObject(originalXml,
|
||||
new XMLParserConfiguration()
|
||||
.withKeepStrings(false)
|
||||
.withForceList(forceListCandidates)
|
||||
.withConvertNilAttributeToNull(true));
|
||||
assertEquals(expectedJsonString, json.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testForceListWithMiddleElementAsEmpty(){
|
||||
final String originalXml = "<root><id>1</id><id></id><id>2</id></root>";
|
||||
final String expectedJsonString = "{\"root\":{\"id\":[1,2]}}";
|
||||
|
||||
HashSet<String> forceListCandidates = new HashSet<>();
|
||||
forceListCandidates.add("id");
|
||||
final JSONObject json = XML.toJSONObject(originalXml,
|
||||
new XMLParserConfiguration()
|
||||
.withKeepStrings(false)
|
||||
.withForceList(forceListCandidates)
|
||||
.withConvertNilAttributeToNull(true));
|
||||
assertEquals(expectedJsonString, json.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testForceListEmptyAndEmptyTagsMixed(){
|
||||
final String originalXml = "<root><id></id><id/><id>1</id><id/><id></id><id>2</id></root>";
|
||||
final String expectedJsonString = "{\"root\":{\"id\":[1,2]}}";
|
||||
|
||||
HashSet<String> forceListCandidates = new HashSet<>();
|
||||
forceListCandidates.add("id");
|
||||
final JSONObject json = XML.toJSONObject(originalXml,
|
||||
new XMLParserConfiguration()
|
||||
.withKeepStrings(false)
|
||||
.withForceList(forceListCandidates)
|
||||
.withConvertNilAttributeToNull(true));
|
||||
assertEquals(expectedJsonString, json.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMaxNestingDepthIsSet() {
|
||||
XMLParserConfiguration xmlParserConfiguration = XMLParserConfiguration.ORIGINAL;
|
||||
|
||||
Reference in New Issue
Block a user