2012-03-09 60 views
0

如何使用Monodroid的System.Json命名空间将任意随机对象转换为JSON字符串?我看到那里的类(JsonObject,JsonVlaue等),我可以反序列化就好了。但序列化正在逃避我。如何使用Monodroid的System.Json将对象序列化为JSON?

+0

我相信System.Json上的当前答案是它只存在于非常轻量级反序列化 - http://stackoverflow.com/questions/5399506/using-system-json-to-convert-c-sharp-arrays-and-objects-to-a-json-string和http://stackoverflow.com/questions/5026985/how-to-serialize-using-system-json-in-monotouch - 所以你最好使用Newtonsoft的Json.Net或ServiceStack的JSON支持端口 – Stuart 2012-03-10 11:33:18

+0

@Stuart:请使这个评论成为一个答案。我可以接受并关闭它。谢谢。 – 2012-03-24 00:37:13

+0

:)完成!对不起,这不是更好的消息! – Stuart 2012-03-24 12:11:13

回答

0

使用这个示例模型:

class MyModel 
{ 
    public string Name { get; set; } 
} 

可以使用DataContractJsonSerializer类对象序列化到JSON:

var model = new MyModel {Name = "Greg"}; 
var serializer = new DataContractJsonSerializer(typeof (MyModel)); 

using (var stream = new MemoryStream()) 
{ 
    serializer.WriteObject(stream, model); 

    string json = Encoding.Default.GetString(stream.ToArray()); 

    Console.WriteLine(json); 
} 

该代码会输出这个JSON:

{"Name":"Greg"} 

如果您没有绑定到内置的.NET序列化库,则可能需要检出Json.NETServiceStack

+0

这实际上适合你吗?我很好奇,因为其他示例声明您必须将MyModel类作为DataContract和可序列化参数装饰为DataMember – 2013-10-31 10:18:13

相关问题