在ASP MVC 4中将JSON文本解析为C#对象

13

我有很多自定义属性想要保存到数据库中,但对于如何存储它们在数据库中感到困惑。我考虑将其作为字符串存储,并用

(= => 名称, 值) (; => 属性, 属性) 来分隔属性,但这段代码一点也不优雅!

所以我开始考虑将它们保存为Json字符串,但我找不到Json对象解析器

尽管我们只需要调用json() 就可以将对象解析成json字符串

除了使用json字符串之外,是否有更好的方法? 提供了json字符串解析器吗?


1
为什么不将它们逐个保存在键/值表中呢? - Jan
1
他们有很多...这个方法真的很丑陋...谢谢先生! - Hilmi
3个回答

24

尝试使用System.Web.Script.Serialization.JavaScriptSerializer,以下是示例:

var yourObject = new JavaScriptSerializer().Deserialize<YourType>(strInput)
或者
var yourObject = new JavaScriptSerializer().Deserialize(strInput)

3
太棒了,不需要使用Json.net。 - highwingers
感谢,+1。顺便提一下,这个类可以在System.Web.Extensions dll中找到。 - Bruce Pierson
在 JavaScript 中,使用以下代码将字符串反序列化为对象:var yourObject = new JavaScriptSerializer().Deserialize(strInput)。Deserialize 接受更多的输入参数类型,而不是直接指定字符串。!! - DharaPPatel

18

很多人使用Json.net进行序列化

var log  = JsonConvert.DeserializeObject<YourObject>(logJson)

另一个方向

  var logJson = JsonConvert.SerializeObject(log);

3
您可以使用 $.parseJSON,试试这个代码,以查看 txt 数据:
var info = $.parseJSON(data);
 alert(info);

1
谢谢您,先生。但是我想要的是服务器端解析...再次感谢。 - Hilmi
2
使用 var js = JavaScriptSerializer.serialize(object) 将对象序列化,然后使用 StringBuilder.append(js)。 - GiantHornet
是的,我认为JavaScriptSerializer是我的选择!谢谢 - Hilmi
哈!这就是我在寻找的。 +++++1 - snowYetis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接