c#里string和Json转换

这里要用到如下两个namespace:

using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;

定义Json实体类如下:

[DataContract]
public class TextMessage
{
    [DataMember(Name = "content")]
    public string Content { get; set; }
}

[DataContract]
public class CustomerMessage
{
    [DataMember(Name = "touser")]
    public string touser { get; set; }

    [DataMember(Name = "msgtype")]
    public string msgtype { get; set; }

    [DataMember(Name = "text")]
    public TextMessage textMsg { get; set; }
}

对象序列化为Json格式如下:

CustomerMessage message = new CustomerMessage()
{
    touser = OpenIDBox.Text,
    msgtype = "text",
    textMsg = new TextMessage()
    {
        Content = ContentBox.Text
    }
};

DataContractJsonSerializer json = new DataContractJsonSerializer(message.GetType());
string szJson = "";

//序列化
using (MemoryStream stream = new MemoryStream())
{
    json.WriteObject(stream, message);
    szJson = Encoding.UTF8.GetString(stream.ToArray());
}

Console.WriteLine(szJson);

Json格式反序列化为对象如下:

retStr = "<Json String>";
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(retStr)))
{
    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(CustomerMessage));
    CustomerMessage_message = (CustomerMessage)serializer.ReadObject(ms);
}

c#里string和Json转换

时间: 2024-12-29 10:20:34

c#里string和Json转换的相关文章

Jackson2 json 转换Bean, Bean 里没有对应的值 jackson Un的解决方式

遇到这个问题时我找到了 SpringMVC @RequestBody问题:Unrecognized field , not marked as ignorable 这篇文章里说: @JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段,可以满足当前的需要.这个注解还可以指定要忽略的字段.使用方法如下: @JsonIgnoreProperties({ "internalId", "secretKe

Net Core 下 Newtonsoft.Json 转换字符串 null 替换成string.Empty

原文:Net Core 下 Newtonsoft.Json 转换字符串 null 替换成string.Empty public class NullToEmptyStringResolver : DefaultContractResolver { /// <summary> /// 创建属性 /// </summary> /// <param name="type">类型</param> /// <param name="

采用json-lib进行Map与Json转换

Json转换工具实在之多,最近又听说FastJson对Java序列化和反序列化最优,相比 Java自带序列化.Json-lib.Jackson等.不过本人很青睐Gson,但是好像用的人也不是很多,项目中用的最多的就是垃圾Json-lib了,虽然烂,但是还是的继续使用着,因为项目在我来之前已经搭建了,不过现在我推荐使用Jackson,官网说到这是Json工具中最快的一个,当然是有一点吹牛的,因为他没有拿数据说话!之所以推荐Jackson,Jackson确实速度快,而且Spring内部原生支持Jac

乱码字符引起的JSON转换失败

这种问题有两个解决办法,使用后不管你是什么特殊字符还是什么西欧字体还是什么稀奇古怪的内容都可以完美解决! 1.要把即将转换为json的内容先转换为unicode编码,json转换无误后,使用json时,比如展示json里的内容,再将其转换为中文字符 2.这是个偏方法,使用过JSONObject lib 工具的都知道即使是一条乱码内容,依然可以存储到JSONObject里去.我看了它的存储源码,发现它是存储之前,将内容解释后再存储了.这样做得话,不管你什么,我先解释一遍再存储,可以避免存储时因特殊

atitit.XML类库选型及object 对象bean 跟json转换方案

atitit.XML类库选型及object 对象bean 跟json转换方案 1. XML类库可以分成2大类.标准的.这些类库通常接口和实现都是分开的 1 2. 常见的xml方面的方法 2 2.1. xml解析 2 2.2. bean与xml互相转换 2 2.3. json与xml的互相转换 2 3. 大名鼎鼎的 DOM  绿色环保的 SAX 默默无闻的 Digester 2 3.1. 默默无闻的 Digester:XML 的 JavaBean 化 2 4. Digester 解析 XML 3

JSON转换

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

java中string与json互相转化

1.string转json 有三种方法 第一种:string直接转json String json = "{\"2\":\"efg\",\"1\":\"abc\"}";   JSONObject json_test = JSONObject.fromObject(json);   将string的双引号转义即可,适用于字符串较短的 第二种:将string转为list后转为json List<Strin

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

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

C# JSON转换以及编码转换

C# JSON转换以及编码转换 一.C# Json转换 首先需要下载安装Newtonsoft.Json.dll,下载地址 引用后再添加:using Newtonsoft.Json;using Newtonsoft.Json.Converters;即可使用. String转JSON String json=JsonConvert.SerializeObject(str); JSON转String String str=JsonConvert.DeserializeObject<String>(j