java 原生 json 转 xml java json转xml 实现代码 读取本地json文件 转成 xml数据 用springboot 发布xml格式数据

750 阅读1分钟

结果xml截图

 

json数据

 

main启动


import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;



public static void main(String[] args) {
		// 本地读取方式
		new xxx().executeJsonToXml();
}

 

启动内容方法用来调用

public String executeJsonToXml(){
		JSONObject jo = JSONOrTextOut.getJSONObject("E:\\public_file\\data.json");
		JSONObject jo0 = new JSONObject();
		jo0.put("info", jo);
		String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+ jsontoxml(jo0, "");
		return xml;
	}

 

转换代码:可转jsonobject or jsonarray用上边的调用这个

//jo jsonObject
//gt 换行 付

public static String jsontoxml(JSONObject jo, String gt) {
		StringBuffer xmlStr = new StringBuffer();
		Iterator iter = jo.entrySet().iterator();
		while (iter.hasNext()) {
			Map.Entry entry = (Map.Entry) iter.next();
			String key = entry.getKey().toString();
			String val = entry.getValue().toString();
			if (val.substring(0, 1).equals("{")) {
				xmlStr.append(gt);
				xmlStr.append("<");
				xmlStr.append(key);
				xmlStr.append(">\n");
				xmlStr.append(jsontoxml(JSONObject.parseObject(val), gt+"\t"));
				xmlStr.append(gt);
				xmlStr.append("</");
				xmlStr.append(key);
				xmlStr.append(">\n");
			} else if (val.substring(0, 1).equals("[")) {
				xmlStr.append(gt);
				xmlStr.append("<");
				xmlStr.append(key);
				xmlStr.append(">\n");
				JSONArray ja = JSONArray.parseArray(val);
				for (int i = 0; i < ja.size(); i++) {
					JSONObject jo2 = new JSONObject();
					jo2.put("object", ja.getJSONObject(i));
					xmlStr.append(jsontoxml(jo2, gt+"\t"));
				}
				xmlStr.append(gt);
				xmlStr.append("</");
				xmlStr.append(key);
				xmlStr.append(">\n");
			} else {
				xmlStr.append(gt);
				xmlStr.append("<");
				xmlStr.append(key);
				xmlStr.append(">");
				xmlStr.append(val);
				xmlStr.append("</");
				xmlStr.append(key);
				xmlStr.append(">\n");
			}
		}
		return xmlStr.toString();
	}

 

提供给网络使用的springboot返回代码

 

import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
 *  
 * @author Administrator
 *
 */
@RestController
public class zzz{

	@Autowired
	private zzzservice zszs;
	
	@RequestMapping(value = "/bd", produces = {"application/xhtml+xml;charset=UTF-8" }, method = RequestMethod.GET)
	public String bd(HttpServletRequest req) {
		return zszs.executeJsonToXml();
	}
}

 

ok到这里就ok了

 

在上传个读取json的

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import com.alibaba.fastjson.JSONObject;

public static JSONObject getJSONObject(String url) {
		JSONObject jo = new JSONObject();
		StringBuilder result = new StringBuilder();
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(url), "UTF-8"));
			String s = null;
			while ((s = br.readLine()) != null) {// 使用readLine方法,一次读一行
				result.append(System.lineSeparator() + s);
			}
			br.close();
			jo = JSONObject.parseObject(result.toString());

		} catch (Exception e) {
			e.printStackTrace();
		} 
		return jo;
	}

 

依赖

<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.32</version>
		</dependency>

 

 

 

 

 

 

持续更新