主要讲述了两种方法的转换,最后提供了格式化输出jsonstring字符串。
需要引用程序集 system.web.extensions.dll、newtonsoft.json.dll
system.web.extensions.dll可直接在程序集中引用,newtonsoft.json.dll需要在nuget中下载引用。
详细代码:
using system;
using system.io;
using newtonsoft.json;
using system.collections.generic;
using system.web.script.serialization;
namespace testautomationutility.models
{
/// <summary>
/// <para>需要引用程序集 system.web.extensions.dll、newtonsoft.json.dll</para>
/// <para>提供了两种方式转换</para>
/// </summary>
internal class converttojsonstring
{
/// <summary>
/// 把json转集合
/// </summary>
/// <typeparam name="t"></typeparam>
/// <param name="jsonstr"></param>
/// <returns></returns>
public list<t> jsonstringtolist<t>(string jsonstr)
{
javascriptserializer serializer = new javascriptserializer();
list<t> objs = serializer.deserialize<list<t>>(jsonstr);
return objs;
}
/// <summary>
/// 把json转对象
/// </summary>
/// <typeparam name="t"></typeparam>
/// <param name="jsonstr"></param>
/// <returns></returns>
public t jsonstringtoentity<t>(string jsonstr)
{
javascriptserializer serializer = new javascriptserializer();
t objs = serializer.deserialize<t>(jsonstr);
return objs;
}
/// <summary>
/// 把对象转为json
/// </summary>
/// <typeparam name="t"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public string tostring<t>(t t)
{
javascriptserializer serializer = new javascriptserializer();
string jsonstring = serializer.serialize(t);
return jsonstring;
}
/// <summary>
/// 把list集合转为json
/// </summary>
/// <typeparam name="t"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public string tostring<t>(list<t> ts)
{
javascriptserializer serializer = new javascriptserializer();
string jsonstring = serializer.serialize(ts);
return jsonstring;
}
/// <summary>
/// object转string
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public string tostringobject(object obj)
{
string json = newtonsoft.json.jsonconvert.serializeobject(obj);
return json;
}
/// <summary>
/// json转entity
/// </summary>
/// <typeparam name="t"></typeparam>
/// <param name="jsonstring"></param>
/// <returns></returns>
public t stringtoentity<t>(string jsonstring)
{
t person = jsonconvert.deserializeobject<t>(jsonstring);
return person;
}
/// <summary>
/// json转list
/// </summary>
/// <typeparam name="t"></typeparam>
/// <param name="jsonstring"></param>
/// <returns></returns>
public ilist<t> stringtoentitys<t>(string jsonstring)
{
ilist<t> person = jsonconvert.deserializeobject<ilist<t>>(jsonstring);
return person;
}
/// <summary>
/// 格式化输出json字符串
/// </summary>
/// <param name="json"></param>
/// <returns></returns>
private string convertjsonstring(string json)
{
jsonserializer serializer = new jsonserializer();
textreader tr = new stringreader(json);
jsontextreader jtr = new jsontextreader(tr);
object obj = serializer.deserialize(jtr);
if (obj != null)
{
stringwriter textwriter = new stringwriter();
jsontextwriter jsonwriter = new jsontextwriter(textwriter)
{
formatting = formatting.indented,
indentation = 4,
indentchar = ' '
};
serializer.serialize(jsonwriter, obj);
return textwriter.tostring();
}
else
{
return json;
}
}
}
}知识拓展
c# jsonobject实现数据转换
在c#中,你可以使用newtonsoft.json库(也称为json.net)来处理json数据。首先,你需要安装这个库,可以通过nuget包管理器来安装:
install-package newtonsoft.json
安装完成后,你可以使用以下代码示例来实现json对象的数据转换:
using system;
using newtonsoft.json;
using newtonsoft.json.linq;
namespace jsontocsharpobject
{
class program
{
static void main(string[] args)
{
string jsonstring = "{\"name\":\"john\", \"age\":30, \"city\":\"new york\"}";
// 将json字符串转换为c#对象
person person = jsonconvert.deserializeobject<person>(jsonstring);
console.writeline($"name: {person.name}");
console.writeline($"age: {person.age}");
console.writeline($"city: {person.city}");
// 将c#对象转换回json字符串
string jsonfromobject = jsonconvert.serializeobject(person);
console.writeline($"json from object: {jsonfromobject}");
}
}
public class person
{
public string name { get; set; }
public int age { get; set; }
public string city { get; set; }
}
}
在这个示例中,我们首先定义了一个名为person的c#类,该类具有与json对象中的属性相对应的属性。然后,我们使用jsonconvert.deserializeobject方法将json字符串转换为person对象。接下来,我们使用console.writeline输出转换后的数据。
最后,我们使用jsonconvert.serializeobject方法将person对象转换回json字符串,并将其输出到控制台。
到此这篇关于c#实现jsonstring与object互转的文章就介绍到这了,更多相关c# jsonstring object互转内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论