使用 JavaScriptSerializer 创建自构造对象 (JSON.解析等效项)
本文关键字:JSON 创建 JavaScriptSerializer 对象 使用 | 更新日期: 2023-09-27 18:34:29
我正在创建一个灵活的框架,用于为第三方开发人员创建和存储设置。
我们做出的更好的选择之一是创建一个系统,开发人员在其中使用 JSON 创建自己的设置,并在以后简单地序列化对象。
即
public class YammerConfig
{
public string yammerClientId { get; set; }
public string yammerNetwork { get; set; }
public YammerConfig(string js)
{
var ser = new JavaScriptSerializer();
var sam = ser.Deserialize<YammerConfig>(js);
yammerClientId = sam.yammerClientId;
yammerNetwork = sam.yammerNetwork;
}
}
这是在数据库中存储设置的有效方法,而无需为唯一的信息集重新配置新表。
我很想更进一步,就像JavaScript本身一样,并动态创建不需要手动序列化的对象。
是否可以在 .NET C# 中创建等效的json.parse
?
为什么不使用扩展方法
例如。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
namespace Stackoverflow.Helpers
{
public static class JsonHelper
{
private static JavaScriptSerializer ser = new JavaScriptSerializer();
public static T ToJSON<T>(this string js) where T : class
{
return ser.Deserialize<T>(js);
}
public static string JsonToString(this object obj)
{
return ser.Serialize(obj);
}
}
}
易于使用
//Deserialize
string s = "{yammerClientId = '"1'",yammerNetwork = '"2'"}";
YammerConfig data = s.ToJSON<YammerConfig>();
//Serialize
string de = data.JsonToString();
你能使用 Newtonsoft.Json
(home( 非常简单地进行反序列化吗? 它只是一行,比内置的更好。
var settings = JsonConvert.DeerializeObject<YammerSettings>(json);
var json = JsonConvert.SerializeObject(yammerSettingsObject);
// you can also serialized and deserialize anon objects, control formatting,
// do dictinaries and lists directly, datasets, and on and on
查看此网站以获取更多示例
如果这还没有涵盖您要查找的内容,您能更具体一点吗? 这是我们唯一使用的JSON库,它可以处理所有事情。