private void process(Response<String> response, ApiManagerInterface callback, Class clazz) { if (response.isSuccessful()) { String xml = response.body(); try { JSONObject jsonObj; if (xml != null) { jsonObj = XML.toJSONObject(xml); } else { callback.onError(new IOException("response body is null")); return; } if (isVerboseLog) { System.out.println(jsonObj); } callback.onResult(new Gson().fromJson(jsonObj.toString(), clazz)); } catch (JSONException e) { callback.onError(e); e.printStackTrace(); } } else { handleUnsucceesfulResponse(response, callback); } }
/** * Converts the given XML string to JSON string. class. * * @param data XML string * @return JSON string or an empty string if the conversion fails */ @Override public String convert(String data) { LOGGER.debug("CONVERTING " + data); try { JSONObject asJson = XML.toJSONObject(data); if (asJson.has(ARRAY)) { // If the JSON object has an "array" key, it's an array JSONArray jsonArray = asJson.getJSONArray(ARRAY); LOGGER.debug("RETURN ARRAY " + jsonArray.toString()); return jsonArray.toString(); } else { // Did not have top-level array key. this.normalizeObject(asJson); String jsonStr = asJson.toString(); // JSON-LD uses '@' characters in keys and they're not allowed // in XML element names. Replace '__at__' with '@' in keys. jsonStr = jsonStr.replaceAll("\"__at__(.+?\"\\s*:)", "\"@$1"); LOGGER.debug("NORMALIZED TO " + jsonStr); return jsonStr; } } catch (Exception e) { LOGGER.error(e.getMessage(), e); LOGGER.warn("Converting XML to JSON failed! An empty String is returned."); return ""; } }
/** * JSON To xml. * * @param xmlString the xml string * @param rootElement the root element that the xml should have. * By default = gptJsonXml * @return the xml. * @throws Exception thrown if error while converting xmlString */ public static String jsonToXml(String xmlString, String rootElement) throws Exception { try { JSONObject jso = new JSONObject(xmlString); rootElement = Val.chkStr(rootElement); if("".equals(rootElement)) { rootElement = "gptJsonXml"; } String xml = XML.toString(jso, "gptJsonXml"); StreamSource source = new StreamSource(new StringReader(xml)); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.transform(source, result); return Val.chkStr(writer.toString()); } catch (Exception e) { throw e; } }
/** * Save incidents for a given day, returns if any data was added by this call. */ static final boolean getAllZonesForDay(final LocalDate localDate) throws Exception { JSONObject[] stats = new JSONObject[7]; for (int zoneID = 1; zoneID <= 6; zoneID++) { stats[zoneID] = getStats(zoneID + "", localDate); } for (int zoneID = 1; zoneID <= 6; zoneID++) { JSONArray incidents = stats[zoneID].getJSONArray("incidents"); if (incidents.length() == 0) { Utilities.println("halting getAllZonesForDay on " + localDate + " because zone " + zoneID + " is empty"); return false; } } for (int zoneID = 1; zoneID <= 6; zoneID++) { String xmlString = "<stats>" + XML.toString(stats[zoneID]) + "</stats>"; MongoData.addIncidentsToCollection(getIncidentsFromXMLString(xmlString)); } return true; }
private String processXML2JSON(Path xmlDocPath) throws JSONException { String XML_STRING = null; try { XML_STRING = Files.lines(xmlDocPath).collect(Collectors.joining("\n")); } catch (IOException e) { e.printStackTrace(); } JSONObject xmlJSONObj = XML.toJSONObject(XML_STRING); String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR); System.out.println("PRINTING STRING :::::::::::::::::::::" + jsonPrettyPrintString); return jsonPrettyPrintString; }
@SuppressWarnings("UnusedReturnValue") private static String fetch() { try { info = Unirest.get("https://gensokyoradio.net/xml").asString().getBody(); JSONObject data = XML.toJSONObject(GensokyoInfoAgent.getInfo()).getJSONObject("GENSOKYORADIODATA"); String newSong = data.getJSONObject("SONGINFO").getString("TITLE"); if (!newSong.equals(lastSong)) { List<FredBoat> shards = FredBoat.getShards(); for(FredBoat shard : shards) { shard.getJda().getPresence().setGame(Game.of(newSong)); } log.info("Now playing " + newSong); } lastSong = data.getJSONObject("SONGINFO").getString("TITLE"); return info; } catch (UnirestException e) { throw new RuntimeException(e); } }
private Document xmlFromDOICrossRef(String doi) throws Exception { //send request to API MCRContent crossRefExport = crossRefConnection.getPublicationByDOI(doi); //transform JSON-response to XML MCRStringContent xml = new MCRStringContent(XML.toString(new JSONObject(crossRefExport.asString()), "content")); //transform xml to mods MCRXSL2XMLTransformer transformer = new MCRXSL2XMLTransformer("CrossRef2mods.xsl"); MCRContent mods = transformer.transform(xml); return mods.asXML(); }
/** * Reads document description from the CrossRef API. * * * @author Eike Spielberg * */ public Source resolve(String href, String base) throws TransformerException { String id = href.substring(href.indexOf(":") + 1); MCRContent content = null; IEEEConnector connection = new IEEEConnector(); try { MCRContent ieeeExport = connection.getPublicationByAuthor(id); content = new MCRStringContent(XML.toString(new JSONObject(ieeeExport.asString()), "content")); LOGGER.debug("Reading MCRContent with DOI " + id); MCRXSL2XMLTransformer transformer = new MCRXSL2XMLTransformer("xsl/IEEE2mods.xsl"); MCRContent mods = transformer.transform(content); connection.close(); return mods.getSource(); } catch (Exception e) { throw new TransformerException(e); } }
/** * Reads document description from the CrossRef API. * * * @author Eike Spielberg * */ public Source resolve(String href, String base) throws TransformerException { String id = href.substring(href.indexOf(":") + 1); MCRContent content = null; CrossRefConnector connection = new CrossRefConnector(); try { MCRContent crossRefExport = connection.getPublicationByDOI(id); content = new MCRStringContent(XML.toString(new JSONObject(crossRefExport.asString()), "content")); LOGGER.debug("Reading MCRContent with DOI " + id); MCRXSL2XMLTransformer transformer = new MCRXSL2XMLTransformer("xsl/CrossRef2mods.xsl"); MCRContent mods = transformer.transform(content); connection.close(); return mods.getSource(); } catch (Exception e) { throw new TransformerException(e); } }
/** * Converts the given JSON string to XML string. * class. * @param data JSON string * @return XML string or an empty string if the conversion fails */ @Override public String convert(String data) { String asXML; try { LOGGER.debug("CONVERTING " + data); if (data.startsWith("{")) { JSONObject asJson = new JSONObject(data); // "array" behaves in a special way, best to disallow it if (asJson.has("array")) { LOGGER.error("Data violation: Invalid key \"array\""); return "<error>Invalid key \"array\"</error>"; } asXML = XML.toString(asJson); } else { asXML = XML.toString(new JSONArray(data)); } // JSON-LD uses '@' characters in keys and they're not allowed // in XML element names. Replace '@' characters with '__at__' in // element names. asXML = asXML.replaceAll("<(/{0,1})@", "<$1__at__"); LOGGER.debug("RETURN XML " + asXML); return asXML; } catch (Exception e) { LOGGER.error(e.getMessage(), e); } LOGGER.warn("Converting JSON to XML failed! An empty string is returned."); return ""; }
/** * the constructor. * * @param config * the configuration to use. */ public BlockDbH2Impl(final JSONObject config) { try (InputStream resourceAsStream = BlockDbH2Impl.class.getResourceAsStream(SQL_CACHE_XML);) { final String jsonStr = IOUtils.toString(resourceAsStream, "UTF-8"); sqlCache = XML.toJSONObject(jsonStr, true).getJSONObject("BlockDbImpl"); } catch (final IOException | NullPointerException e) { throw new RuntimeException("error reading resource\"" + SQL_CACHE_XML + "\" ", e); } fileSizeDir = new File(config.getString(ConfigurationUtil.FILE_SIZE_DIR)); ds = new JdbcDataSource(); ds.setUrl(config.getString(ConfigurationUtil.URL)); final JdbcTemplate t = new JdbcTemplate(ds); executeSqlGroup(t, "create"); }
/** * Decodes the given XML string to produce a list structure. <tag>string</tag> decodes to * a list that contains a pair of tag and string. More generally, if obj1, obj2, ... * are tag-delimited XML strings, then <tag>obj1 obj2 ...</tag> decodes to a list * that contains a pair whose first element is tag and whose second element is the * list of the decoded obj's, ordered alphabetically by tags. Examples: * <foo>123</foo> decodes to a one-item list containing the pair (foo, 123) * <foo>1 2 3</foo> decodes to a one-item list containing the pair (foo,"1 2 3") * <a><foo>1 2 3</foo><bar>456</bar></a> decodes to a list containing the pair * (a,X) where X is a 2-item list that contains the pair (bar,123) and the pair (foo,"1 2 3"). * If the sequence of obj's mixes tag-delimited and non-tag-delimited * items, then the non-tag-delimited items are pulled out of the sequence and wrapped * with a "content" tag. For example, decoding <a><bar>456</bar>many<foo>1 2 3</foo>apples</a> * is similar to above, except that the list X is a 3-item list that contains the additional pair * whose first item is the string "content", and whose second item is the list (many, apples). * This method signals an error and returns the empty list if the result is not well-formed XML. * * @param jsonText the JSON text to decode * @return the decoded text */ // This method works by by first converting the XML to JSON and then decoding the JSON. @SimpleFunction(description = "Decodes the given XML string to produce a list structure. " + "See the App Inventor documentation on \"Other topics, notes, and details\" for information.") // The above description string is punted because I can't figure out how to write the // documentation string in a way that will look work both as a tooltip and in the autogenerated // HTML for the component documentation on the Web. It's too long for a tooltip, anyway. public Object XMLTextDecode(String XmlText) { try { JSONObject json = XML.toJSONObject(XmlText); return JsonTextDecode(json.toString()); } catch (JSONException e) { // We could be more precise and signal different errors for the conversion to JSON // versus the decoding of that JSON, but showing the actual error message should // be good enough. Log.e("Exception in XMLTextDecode", e.getMessage()); form.dispatchErrorOccurredEvent(this, "XMLTextDecode", ErrorMessages.ERROR_WEB_JSON_TEXT_DECODE_FAILED, e.getMessage()); // This XMLTextDecode should always return a list, even in the case of an error return YailList.makeEmptyList(); } }
public static List<CareerBuilderJobSearchResult> getResponse (String candidateLocation, String jobQuery) { // Keywords matching CareerBuilder matched to Indeed : keywords = query, location = location, orderBy = sort, empType = jobType, pageNumber = start // perPage = limit, payLow = salary String keywords = "keywords=" + jobQuery, location = "location=" + candidateLocation, orderBy = "orderby=", empType = "emptype=", pageNumber = "pagenumber=", perPage = "perpage=" + preDefinedLimit, payLow = "paylow=", requestURL = "http://api.careerbuilder.com/v2/jobsearch?"; // Master URL used to query CB database requestURL += developerKey + "&" + keywords + "&" + location + "&" + orderBy + "&" + empType + "&" + pageNumber + "&" + perPage + "&" + payLow; try { // Reading XML, converting to JSON String xml = CustomUtilities.RequestToString(requestURL); if (xml != null) { String json = XML.toJSONObject(xml).toString(); Gson gson = new Gson(); CareerBuilderMaster s = gson.fromJson(json, CareerBuilderMaster.class); return s.getResponse().getResult().getJobResults(); } } catch (Exception e) { e.printStackTrace(); } return null; }
public void saveInFile(Path path) throws IOException { try { Document doc = DocumentBuilderFactory.newInstance() .newDocumentBuilder() .parse(new InputSource(new StringReader(XML.toString(toJSON())))); Transformer t = TransformerFactory.newInstance().newTransformer(); t.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes"); t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); t.setOutputProperty(javax.xml.transform.OutputKeys.OMIT_XML_DECLARATION, "yes"); OutputStreamWriter stream = new OutputStreamWriter(new FileOutputStream(path.resolve("saved.preset").toFile()), "UTF-8"); t.transform(new DOMSource(doc), new StreamResult(stream)); } catch(Exception ex){ Main.log(ex); Main.log("Error while writing preset file"); } }
public static CharacterPreset getFromFileUnsafe(Path path) { try { BufferedReader in = new BufferedReader( new InputStreamReader(new FileInputStream(path.toFile()), "UTF-8") ); final StringBuilder str = new StringBuilder(); String str2; while ((str2 = in.readLine()) != null) { str.append(str2); str.append("\n"); } JSONObject obj = XML.toJSONObject(str.toString()); return new CharacterPreset(obj.getJSONObject("preset")); } catch (Exception e) { Main.log(e); return new CharacterPreset(); } }
protected org.json.JSONObject fetchDeploymentDescriptionsAsJSON() throws Exception { DeploymentDescriptions deploymentDescriptions = fetchDeploymentDescriptions(); Iterator<DeploymentDescription> iterator = deploymentDescriptions.getDeploymentDescriptions().iterator(); while (iterator.hasNext()) { DeploymentDescription deploymentDescription = iterator.next(); if (!deploymentDescription.isEnableMetrics() || deploymentDescription.isMetricsGateway() || deploymentDescription.isSystemGateway()) { iterator.remove(); } } Marshaller marshaller = descriptionJaxbContext.createMarshaller(); StringWriter writer = new StringWriter(); marshaller.marshal(deploymentDescriptions, writer); return XML.toJSONObject(writer.toString()); }
protected org.json.JSONObject fetchMetricsAsJSON(MetricsRequest metricsRequest) throws Exception { MetricsResponse metricsResponse = ServiceDownloadUtil.downloadMetrics(config, metricsRequest); String payloadStr = metricsResponse.getPayload(); String payload = StringEscapeUtils.unescapeXml(payloadStr); payload = payload.replaceAll("[()]", ""); payload = payload.replace("metrics_content", ""); org.json.JSONObject jsonObject = new org.json.JSONObject(); Marshaller marshaller = metricsRequestJaxbContext.createMarshaller(); StringWriter writer = new StringWriter(); marshaller.marshal(metricsRequest, writer); jsonObject.put(METRICS_REQUEST, XML.toJSONObject(writer.toString())); jsonObject.put(PAYLOAD, payload); return jsonObject; }
public static void sendError(HttpServletResponse response, String container, String format, String message) { PrintWriter respout; String xml = "<"+container+"><status>error</status><error>"+message+"</error></"+container+">"; try { if ( format.equals("xml") ) { respout = response.getWriter(); } else { respout = response.getWriter(); JSONObject json_response = XML.toJSONObject(xml); json_response.write(respout); } } catch (Exception e) { // At this point we're toast and no error message will be generated. log.error("Error in JSON response: "+e.getMessage()); } }
private JsonValue getMalJson(String search) throws NoAPIKeyException, IOException { try { String query = baseMalUrl + "anime/search.xml?q=" + URLEncoder.encode(search, "UTF-8"); HttpsURLConnection conn = (HttpsURLConnection) new URL(query).openConnection(); String userpass; userpass = Bot.getInstance().getApiKeys().get("maluser") + ":" + Bot.getInstance().getApiKeys().get("malpass"); String basicAuth = "Basic " + new String(Base64.encodeBase64String(userpass.getBytes())); conn.setRequestProperty("Authorization", basicAuth); conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"); conn.connect(); StringBuilder stb = new StringBuilder(); BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = rd.readLine()) != null) { stb.append(line); } return Json.parse(XML.toJSONObject(stb.toString()).toString()); } catch (IOException e) { e.printStackTrace(); } return null; }
public static JSONObject XMLToJSONObject(String xml) { if (xml != null && !xml.isEmpty()) { try { return XML.toJSONObject(xml); } catch (Exception e) { e.printStackTrace(); } } return null; }
/** * Extracts the contents of a HttpURLConnection's InputStream and converts it to a Json-formatted string */ private String getJsonResult(HttpURLConnection urlConnection) throws IOException { InputStream apiInStream = urlConnection.getInputStream(); String xmlContentFromStream = getStringFromStream(apiInStream); JSONObject jsonObject = XML.toJSONObject(xmlContentFromStream); return jsonObject.toString(INDENT_FACTOR); }
private void sendResponse(HttpServletResponse response, String payload, boolean json) { try { // Convert to JSON? if (json) { JSONObject jobt = XML.toJSONObject(payload); payload = jobt.toString(3); // 3 is indentation level for nice look } OutputStream out = response.getOutputStream(); out.write(payload.getBytes()); out.flush(); } catch(Exception e) { throw new HTTPException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } }
/** * 將 json 轉為 XML * * @param json a json format string. * @return XML format string */ public String jsonToXml(String json){ String xml = ""; // 處理直接以陣列開頭的JSON,並指定給予 row 的 tag if ( "[".equals( json.substring(0,1) ) ){ xml = XML.toString(new JSONArray(json), "row"); }else{ xml = XML.toString(new JSONObject(json)); } return xml; }
@Override public String transform(String json) { String ROOT = null; JSONObject jsonObject = null; if (json.trim().startsWith("{")) { //$NON-NLS-1$ jsonObject = new JSONObject(json); if (jsonObject.length() > 1) { ROOT = "root"; //$NON-NLS-1$ } } else { JSONArray jsonArray = new JSONArray(json); jsonObject = new JSONObject().put(ELEMENT, jsonArray); ROOT = "root"; //$NON-NLS-1$ } return XML.toString(jsonObject, ROOT); }
@Override public String jsonToXml(JsonNode json) { // remove attachments ((ObjectNode) json).remove("_attachments"); // convert to JSONObject and add root element JSONObject jsonObject = new JSONObject(json.toString()); JSONObject rootObject= new JSONObject(); rootObject.put("document", jsonObject); String xml = XML.toString(rootObject); return xml; }
/** * JSONObject from a null XML string. * Expects a NullPointerException */ @Test(expected=NullPointerException.class) public void shouldHandleNullXML() { String xmlStr = null; JSONObject jsonObject = XML.toJSONObject(xmlStr); assertTrue("jsonObject should be empty", jsonObject.length() == 0); }
/** * Empty JSONObject from an empty XML string. */ @Test public void shouldHandleEmptyXML() { String xmlStr = ""; JSONObject jsonObject = XML.toJSONObject(xmlStr); assertTrue("jsonObject should be empty", jsonObject.length() == 0); }
/** * Empty JSONObject from a non-XML string. */ @Test public void shouldHandleNonXML() { String xmlStr = "{ \"this is\": \"not xml\"}"; JSONObject jsonObject = XML.toJSONObject(xmlStr); assertTrue("xml string should be empty", jsonObject.length() == 0); }
/** * Invalid XML string (tag contains a frontslash). * Expects a JSONException */ @Test public void shouldHandleInvalidSlashInTag() { String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+ "<addresses xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""+ " xsi:noNamespaceSchemaLocation='test.xsd'>\n"+ " <address>\n"+ " <name/x>\n"+ " <street>abc street</street>\n"+ " </address>\n"+ "</addresses>"; try { XML.toJSONObject(xmlStr); fail("Expecting a JSONException"); } catch (JSONException e) { assertEquals("Expecting an exception message", "Misshaped tag at 176 [character 14 line 4]", e.getMessage()); } }
/** * Invalid XML string ('!' char in tag) * Expects a JSONException */ @Test public void shouldHandleInvalidBangInTag() { String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+ "<addresses xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""+ " xsi:noNamespaceSchemaLocation='test.xsd'>\n"+ " <address>\n"+ " <name/>\n"+ " <!>\n"+ " </address>\n"+ "</addresses>"; try { XML.toJSONObject(xmlStr); fail("Expecting a JSONException"); } catch (JSONException e) { assertEquals("Expecting an exception message", "Misshaped meta tag at 214 [character 12 line 7]", e.getMessage()); } }
/** * Invalid XML string ('!' char and no closing tag brace) * Expects a JSONException */ @Test public void shouldHandleInvalidBangNoCloseInTag() { String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+ "<addresses xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""+ " xsi:noNamespaceSchemaLocation='test.xsd'>\n"+ " <address>\n"+ " <name/>\n"+ " <!\n"+ " </address>\n"+ "</addresses>"; try { XML.toJSONObject(xmlStr); fail("Expecting a JSONException"); } catch (JSONException e) { assertEquals("Expecting an exception message", "Misshaped meta tag at 213 [character 12 line 7]", e.getMessage()); } }
/** * Invalid XML string (no end brace for tag) * Expects JSONException */ @Test public void shouldHandleNoCloseStartTag() { String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+ "<addresses xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""+ " xsi:noNamespaceSchemaLocation='test.xsd'>\n"+ " <address>\n"+ " <name/>\n"+ " <abc\n"+ " </address>\n"+ "</addresses>"; try { XML.toJSONObject(xmlStr); fail("Expecting a JSONException"); } catch (JSONException e) { assertEquals("Expecting an exception message", "Misplaced '<' at 193 [character 4 line 6]", e.getMessage()); } }
/** * Invalid XML string (partial CDATA chars in tag name) * Expects JSONException */ @Test public void shouldHandleInvalidCDATABangInTag() { String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+ "<addresses xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""+ " xsi:noNamespaceSchemaLocation='test.xsd'>\n"+ " <address>\n"+ " <name>Joe Tester</name>\n"+ " <![[]>\n"+ " </address>\n"+ "</addresses>"; try { XML.toJSONObject(xmlStr); fail("Expecting a JSONException"); } catch (JSONException e) { assertEquals("Expecting an exception message", "Expected 'CDATA[' at 204 [character 11 line 5]", e.getMessage()); } }
/** * No SML start tag. The ending tag ends up being treated as content. */ @Test public void shouldHandleNoStartTag() { String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+ "<addresses xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""+ " xsi:noNamespaceSchemaLocation='test.xsd'>\n"+ " <address>\n"+ " <name/>\n"+ " <nocontent/>>\n"+ " </address>\n"+ "</addresses>"; String expectedStr = "{\"addresses\":{\"address\":{\"name\":\"\",\"nocontent\":\"\",\""+ "content\":\">\"},\"xsi:noNamespaceSchemaLocation\":\"test.xsd\",\""+ "xmlns:xsi\":\"http://www.w3.org/2001/XMLSchema-instance\"}}"; JSONObject jsonObject = XML.toJSONObject(xmlStr); JSONObject expectedJsonObject = new JSONObject(expectedStr); Util.compareActualVsExpectedJsonObjects(jsonObject,expectedJsonObject); }
/** * Valid XML with comments to JSONObject */ @Test public void shouldHandleCommentsInXML() { String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+ "<!-- this is a comment -->\n"+ "<addresses>\n"+ " <address>\n"+ " <![CDATA[ this is -- <another> comment ]]>\n"+ " <name>Joe Tester</name>\n"+ " <!-- this is a - multi line \n"+ " comment -->\n"+ " <street>Baker street 5</street>\n"+ " </address>\n"+ "</addresses>"; JSONObject jsonObject = XML.toJSONObject(xmlStr); String expectedStr = "{\"addresses\":{\"address\":{\"street\":\"Baker "+ "street 5\",\"name\":\"Joe Tester\",\"content\":\" this is -- "+ "<another> comment \"}}}"; JSONObject expectedJsonObject = new JSONObject(expectedStr); Util.compareActualVsExpectedJsonObjects(jsonObject,expectedJsonObject); }
/** * Converting a JSON doc containing '>' content to JSONObject, then * XML.toString() should result in valid XML. */ @Test public void shouldHandleContentNoArraytoString() { String expectedStr = "{\"addresses\":{\"address\":{\"name\":\"\",\"nocontent\":\"\",\""+ "content\":\">\"},\"xsi:noNamespaceSchemaLocation\":\"test.xsd\",\""+ "xmlns:xsi\":\"http://www.w3.org/2001/XMLSchema-instance\"}}"; JSONObject expectedJsonObject = new JSONObject(expectedStr); String finalStr = XML.toString(expectedJsonObject); String expectedFinalStr = "<addresses><address><name/><nocontent/>>"+ "</address><xsi:noNamespaceSchemaLocation>test.xsd</xsi:noName"+ "spaceSchemaLocation><xmlns:xsi>http://www.w3.org/2001/XMLSche"+ "ma-instance</xmlns:xsi></addresses>"; assertTrue("Should handle expectedFinal: ["+expectedStr+"] final: ["+ finalStr+"]", expectedFinalStr.equals(finalStr)); }
/** * Converting a JSON doc containing a 'content' array to JSONObject, then * XML.toString() should result in valid XML. * TODO: This is probably an error in how the 'content' keyword is used. */ @Test public void shouldHandleContentArraytoString() { String expectedStr = "{\"addresses\":{\"address\":{\"name\":\"\",\"nocontent\":\"\",\""+ "content\":[1, 2, 3]},\"xsi:noNamespaceSchemaLocation\":\"test.xsd\",\""+ "xmlns:xsi\":\"http://www.w3.org/2001/XMLSchema-instance\"}}"; JSONObject expectedJsonObject = new JSONObject(expectedStr); String finalStr = XML.toString(expectedJsonObject); String expectedFinalStr = "<addresses><address><name/><nocontent/>"+ "1\n2\n3"+ "</address><xsi:noNamespaceSchemaLocation>test.xsd</xsi:noName"+ "spaceSchemaLocation><xmlns:xsi>http://www.w3.org/2001/XMLSche"+ "ma-instance</xmlns:xsi></addresses>"; assertTrue("Should handle expectedFinal: ["+expectedStr+"] final: ["+ finalStr+"]", expectedFinalStr.equals(finalStr)); }