Json|XMl|Object互相转化-小工具

  1 using Newtonsoft.Json;
  2 using System;
  3 using System.IO;
  4 using System.Text;
  5 using System.Xml;
  6 using System.Xml.Serialization;
  7
  8 public static class XmlConvert
  9     {
 10         public static string SerializXml(object teg) {
 11             StringBuilder sb = new StringBuilder();
 12             StringWriter tw = new StringWriter(sb);
 13             XmlSerializer xmlserializer = new XmlSerializer(teg.GetType());
 14             try
 15             {
 16                 xmlserializer.Serialize(tw, teg);
 17                 tw.Flush();
 18                 tw.Close();
 19                 tw.Dispose();
 20                 return sb.ToString();
 21             }
 22             catch (Exception e)
 23             {
 24                 return string.Empty;
 25             }
 26             finally {
 27                 tw.Flush();
 28                 tw.Close();
 29                 tw.Dispose();
 30             }
 31         }
 32         public static T DeserializXml<T>(string xml) where T:new() {
 33             T result = default(T);
 34             StringReader sr = new StringReader(xml);
 35             XmlSerializer xmlserializer = new XmlSerializer(typeof(T));
 36             result=(T)xmlserializer.Deserialize(sr);
 37             return result;
 38         }
 39         public static string XmlToJson(string xml) {
 40             XmlDocument doc = new XmlDocument();
 41             doc.LoadXml(xml);
 42             return JsonConvert.SerializeXmlNode(doc);
 43         }
 44         public static string JsonToXml(string json,string rootname) {
 45             StringReader sr = new StringReader(json);
 46             JsonTextReader jtr = new JsonTextReader(sr);
 47             StringBuilder sb = new StringBuilder();
 48             StringWriter sw = new StringWriter(sb);
 49             XmlTextWriter xmlwriter = new XmlTextWriter(sw);
 50             try
 51             {
 52                 xmlwriter.WriteStartDocument();
 53                 xmlwriter.WriteStartElement(rootname);
 54                 bool enterArray = false;
 55                 while (jtr.Read())
 56                 {
 57                     switch (jtr.TokenType)
 58                     {
 59                         case JsonToken.StartArray:
 60                             enterArray = true;
 61                             break;
 62                         case JsonToken.EndArray:
 63                             enterArray = false;
 64                             break;
 65                         case JsonToken.StartObject:
 66                             if (enterArray)
 67                                 xmlwriter.WriteStartElement("item");
 68                             break;
 69                         case JsonToken.EndObject:
 70                             xmlwriter.WriteEndElement();
 71                             break;
 72                         case JsonToken.PropertyName:
 73                             xmlwriter.WriteStartElement(jtr.Value.ToString());
 74                             break;
 75                         case JsonToken.String:
 76                         case JsonToken.Integer:
 77                             xmlwriter.WriteCData(jtr.Value.ToString());
 78                             xmlwriter.WriteEndElement();
 79                             break;
 80                         default: break;
 81                     }
 82                 }
 83                 xmlwriter.WriteEndElement();
 84
 85                 return sb.ToString();
 86             }
 87             catch (Exception e)
 88             {
 89                 return string.Empty;
 90             }
 91             finally {
 92                 xmlwriter.Flush();
 93                 xmlwriter.Close();
 94                 sw.Flush();
 95                 sw.Close();
 96                 jtr.Close();
 97                 sr.Close();
 98                 xmlwriter.Dispose();
 99                 sw.Dispose();
100                 sr.Dispose();
101             }
102         }
103     }
时间: 2024-12-14 13:06:16

Json|XMl|Object互相转化-小工具的相关文章

json、javaBean 互相转化 的工具 —— json-lib

从刚开始接触JSON 到现在差不多有两年时间了,最初接触JSON只知道是一种轻量级的数据交换格式.它基于JavaScript的一个子集.后来就很少用到了,后来开始使用Easyui ,就不得不跟Json打交道了.但是也一直没有整理过有关Json的相关知识.直到最近,在做一个项目,前台要求特别高,仅仅是easyui提供的方法已经没有办法满足需求,所以对jquery ,json ,又好好的使用了一次.这次让我收获很大.接下来就跟大家分享一下java中解析json的工具有哪些. 现在我知道了主要有三种:

一个Json结构对比的Python小工具兼谈编程求解问题

先上代码. jsondiff.py #_*_encoding:utf-8_*_ import argparse import json import sys reload(sys) sys.setdefaultencoding('utf-8') def parseArgs(): description = 'This program is used to output the differences of keys of two json data.' parser = argparse.Arg

javabean转换成xml(XStream)小工具

1 package cn.itcast.demo1; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import org.junit.Test; 7 8 import com.thoughtworks.xstream.XStream; 9 10 /** 11 * 演示XStream 12 * @author cxf 13 * 14 */ 15 public class Demo1 { 16 // 返回javabean集合

c 小工具的使用

1. 这是一个gps 数据过滤的小工具,目的是过滤到gps数据中不符合要求的数据,然后转为json 数据 需要两个小工具 bermuda.c   ------>  过滤一定范围的数据 geo2json.c   ------>  将gps 数据转换成json 格式 指的注意的是 需要在这两个文件的可执行文件中间建立连接管道 先看 bermuda.c 的代码 #include <stdio.h> int main() { float latitude; float longitude;

JSON查看小工具

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等).这些特性使JSON

XML,Object,Json转换之浅析Xstream的使用

XML,Object,Json转换之浅析Xstream的使用 请尊重他人的劳动成果,转载请注明出处:XML,Object,Json转换之浅析Xstream的使用 XStream的是一个简单的库,主要用于Java对象和XML之间的转换.但XStream也内置了对Json的支持. 1.Xstream的特点: 这里直接引用Xstream官方的叙述: 灵活易用:在更高的层次上提供了简单.灵活.易用的统一接口,用户无需了解项目的底层细节 无需映射:大多数对象都可以在无需映射的情况下进行序列化与反序列化的操

分享一个小工具:Excel表快速转换成JSON字符串

在游戏项目中一般都需要由策划制作大量的游戏内容,其中很大一部分是使用Excel表来制作的.于是程序就需要把Excel文件转换成程序方便读取的格式. 之前项目使用的Excel表导入工具都是通过Office Excel组件来实现数据访问的,效率十分令人不满.一个端游项目一般要上百个表格,手游项目20.30个表格基本也是要的,于是表格导入程序的过程一般要几分钟,项目后期要接近半个小时. 此次分享的小工具,在速度上有质的飞越,比上述方法实现的工具有接近100倍的速度提升: 完整项目源代码下载:https

JSON格式化着色小工具

在我们系统开发过程中越来越多的使用JSON作为数据交换的载体.JSON的特点是层次结构简洁清晰,易于人阅读和编写.同时也易于机器解析和生成.对于机器解析和生成这点本人表示认可,然而对于易于人阅读和编写可以通过下面一段JSON字符串来验证下: {"strValue":"here is str value","nullValue":null,"intvalue":999,"doublevalue":999,&q

自定义类库:Java转换xml文件转化pojo工具

一.之前java读取xml配置文件时,总是通过dom4j第三方库主动解析,最近发现可以通过jdk类库将xml转换pojo. 二.编写xml转化工具类XmlUtils package com.moy.demo.common.utils; import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; import java.io.InputStream; import java.io.Reader; import jav