JSON及xml互相转换

         ​注意:格式一定要注意正确

1.首先需要安装Newtonsoft.Json库。在Visual Studio中打开NuGet包管理器,搜索Newtonsoft.Json并安装它。导入Newtonsoft.Json命名空间:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
 

2.Json转换为XML并保存

   var document = JsonConvert.DeserializeXNode(dataJson.ToString());
            // 写入到客户端  
            using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                document.Save(fs);
            }

3.Xml转换为Json

XmlDocument doc = new XmlDocument();
     doc.LoadXml(strXml);
     string jsonText = JsonConvert.SerializeXmlNode(doc);
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这些库都提供了各种将XMLJSON字符串互相转换的方法,具体使用方式如下: 1. Jackson: - 将Java对象转换JSON字符串: ``` ObjectMapper objectMapper = new ObjectMapper(); String json = objectMapper.writeValueAsString(myObject); ``` - 将JSON字符串转换为Java对象: ``` ObjectMapper objectMapper = new ObjectMapper(); MyObject myObject = objectMapper.readValue(json, MyObject.class); ``` 2. Gson: - 将Java对象转换JSON字符串: ``` Gson gson = new Gson(); String json = gson.toJson(myObject); ``` - 将JSON字符串转换为Java对象: ``` Gson gson = new Gson(); MyObject myObject = gson.fromJson(json, MyObject.class); ``` 3. xmlpull: - 将XML字符串转换为Java对象: ``` XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser xpp = factory.newPullParser(); xpp.setInput(new StringReader(xml)); MyObject myObject = new MyObject(); while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { if (xpp.getEventType() == XmlPullParser.START_TAG && xpp.getName().equals("myField")) { myObject.setMyField(xpp.nextText()); } xpp.next(); } ``` - 将Java对象转换XML字符串: ``` StringWriter writer = new StringWriter(); XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(writer); serializer.startDocument("UTF-8", true); serializer.startTag("", "myObject"); serializer.startTag("", "myField"); serializer.text(myObject.getMyField()); serializer.endTag("", "myField"); serializer.endTag("", "myObject"); serializer.endDocument(); String xml = writer.toString(); ``` 4. xmlbeans: - 将XML字符串转换为Java对象: ``` XmlObject xmlObject = XmlObject.Factory.parse(xml); MyObject myObject = MyObject.Factory.parse(xmlObject.newInputStream()); ``` - 将Java对象转换XML字符串: ``` MyObject myObject = MyObject.Factory.newInstance(); myObject.setMyField("myValue"); String xml = myObject.xmlText(); ``` 5. dom4j: - 将XML字符串转换为Java对象: ``` Document document = DocumentHelper.parseText(xml); Element root = document.getRootElement(); MyObject myObject = new MyObject(); myObject.setMyField(root.element("myField").getText()); ``` - 将Java对象转换XML字符串: ``` MyObject myObject = new MyObject(); myObject.setMyField("myValue"); Document document = DocumentHelper.createDocument(); Element root = document.addElement("myObject"); Element myField = root.addElement("myField"); myField.setText(myObject.getMyField()); String xml = document.asXML(); ``` 6. jdom: - 将XML字符串转换为Java对象: ``` SAXBuilder builder = new SAXBuilder(); Document document = builder.build(new StringReader(xml)); Element root = document.getRootElement(); MyObject myObject = new MyObject(); myObject.setMyField(root.getChildText("myField")); ``` - 将Java对象转换XML字符串: ``` MyObject myObject = new MyObject(); myObject.setMyField("myValue"); Element root = new Element("myObject"); Element myField = new Element("myField"); myField.setText(myObject.getMyField()); root.addContent(myField); Document document = new Document(root); XMLOutputter outputter = new XMLOutputter(); String xml = outputter.outputString(document); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值