use of cn.hutool.json.JSONObject in project hutool by looly.
the class XMLTest method xmlContentTest.
@Test
public void xmlContentTest() {
JSONObject jsonObject = JSONUtil.createObj().set("content", "123456");
String xml = XML.toXml(jsonObject);
Assert.assertEquals("123456", xml);
xml = XML.toXml(jsonObject, null, new String[0]);
Assert.assertEquals("<content>123456</content>", xml);
}
use of cn.hutool.json.JSONObject in project hutool by dromara.
the class XMLTest method xmlContentTest.
@Test
public void xmlContentTest() {
JSONObject jsonObject = JSONUtil.createObj().set("content", "123456");
String xml = XML.toXml(jsonObject);
Assert.assertEquals("123456", xml);
xml = XML.toXml(jsonObject, null, new String[0]);
Assert.assertEquals("<content>123456</content>", xml);
}
use of cn.hutool.json.JSONObject in project hutool by dromara.
the class XMLTest method toXmlTest.
@Test
public void toXmlTest() {
final JSONObject put = JSONUtil.createObj().set("aaa", "你好").set("键2", "test");
final String s = JSONUtil.toXmlStr(put);
Assert.assertThat(s, CoreMatchers.anyOf(CoreMatchers.is("<aaa>你好</aaa><键2>test</键2>"), CoreMatchers.is("<键2>test</键2><aaa>你好</aaa>")));
}
use of cn.hutool.json.JSONObject in project hutool by dromara.
the class XMLTest method escapeTest.
@Test
public void escapeTest() {
String xml = "<a>•</a>";
JSONObject jsonObject = XML.toJSONObject(xml);
Assert.assertEquals("{\"a\":\"•\"}", jsonObject.toString());
String xml2 = XML.toXml(JSONUtil.parseObj(jsonObject));
Assert.assertEquals(xml, xml2);
}
use of cn.hutool.json.JSONObject in project hutool by dromara.
the class JSONXMLParser method parse.
/**
* Scan the content following the named tag, attaching it to the context.
*
* @param x The XMLTokener containing the source string.
* @param context The JSONObject that will include the new material.
* @param name The tag name.
* @return true if the close tag is processed.
* @throws JSONException JSON异常
*/
private static boolean parse(XMLTokener x, JSONObject context, String name, boolean keepStrings) throws JSONException {
char c;
int i;
JSONObject jsonobject;
String string;
String tagName;
Object token;
token = x.nextToken();
if (token == XML.BANG) {
c = x.next();
if (c == '-') {
if (x.next() == '-') {
x.skipPast("-->");
return false;
}
x.back();
} else if (c == '[') {
token = x.nextToken();
if ("CDATA".equals(token)) {
if (x.next() == '[') {
string = x.nextCDATA();
if (string.length() > 0) {
context.accumulate("content", string);
}
return false;
}
}
throw x.syntaxError("Expected 'CDATA['");
}
i = 1;
do {
token = x.nextMeta();
if (token == null) {
throw x.syntaxError("Missing '>' after '<!'.");
} else if (token == XML.LT) {
i += 1;
} else if (token == XML.GT) {
i -= 1;
}
} while (i > 0);
return false;
} else if (token == XML.QUEST) {
// <?
x.skipPast("?>");
return false;
} else if (token == XML.SLASH) {
// Close tag </
token = x.nextToken();
if (name == null) {
throw x.syntaxError("Mismatched close tag " + token);
}
if (!token.equals(name)) {
throw x.syntaxError("Mismatched " + name + " and " + token);
}
if (x.nextToken() != XML.GT) {
throw x.syntaxError("Misshaped close tag");
}
return true;
} else if (token instanceof Character) {
throw x.syntaxError("Misshaped tag");
// Open tag <
} else {
tagName = (String) token;
token = null;
jsonobject = new JSONObject();
for (; ; ) {
if (token == null) {
token = x.nextToken();
}
// attribute = value
if (token instanceof String) {
string = (String) token;
token = x.nextToken();
if (token == XML.EQ) {
token = x.nextToken();
if (!(token instanceof String)) {
throw x.syntaxError("Missing value");
}
jsonobject.accumulate(string, keepStrings ? token : InternalJSONUtil.stringToValue((String) token));
token = null;
} else {
jsonobject.accumulate(string, "");
}
} else if (token == XML.SLASH) {
// Empty tag <.../>
if (x.nextToken() != XML.GT) {
throw x.syntaxError("Misshaped tag");
}
if (jsonobject.size() > 0) {
context.accumulate(tagName, jsonobject);
} else {
context.accumulate(tagName, "");
}
return false;
} else if (token == XML.GT) {
// Content, between <...> and </...>
for (; ; ) {
token = x.nextContent();
if (token == null) {
if (tagName != null) {
throw x.syntaxError("Unclosed tag " + tagName);
}
return false;
} else if (token instanceof String) {
string = (String) token;
if (string.length() > 0) {
jsonobject.accumulate("content", keepStrings ? token : InternalJSONUtil.stringToValue(string));
}
} else if (token == XML.LT) {
// Nested element
if (parse(x, jsonobject, tagName, keepStrings)) {
if (jsonobject.size() == 0) {
context.accumulate(tagName, "");
} else if (jsonobject.size() == 1 && jsonobject.get("content") != null) {
context.accumulate(tagName, jsonobject.get("content"));
} else {
context.accumulate(tagName, jsonobject);
}
return false;
}
}
}
} else {
throw x.syntaxError("Misshaped tag");
}
}
}
}
Aggregations