2
我的other question似乎过于通用,所以我想我会在细节上创建一个新的。对不起,如果这是不好的做法。如何在MonoTouch中使用System.Json进行序列化
我想以一种不需要我自己下降通过对象的方式将C#对象序列化为带有MonoTouch和System.Json命名空间的JSON字符串。那可能吗?如果是,如何正确执行?
通过隐式地将JsonValue转换为字符串int,无论什么情况下,反序列化都能很好地工作。另外,在层次结构中下降不成问题。像这样:
JsonValue json = JsonValue.Parse(jsonString);
int mainValue = json["mainValue"];
JsonValue subValues = json["subValues"];
int subValue1 = subValues["subValue1"];
只有元素类型(字符串/整数/ ...)才可以相反。其他对象不能转换为JsonValue/JsonObject不幸的。即使只有两个整数,也不是真正简单的结构。
// This works
JsonValue json = new JsonObject(new KeyValuePair<string,JsonValue>("mainValue", 12345));
// Cannot (implicitly) convert type 'MyObjectType' to 'System.Json.JsonValue'
MyObjectType myObject = new MyObjectType();
JsonValue subValues = myObject;
// Cannot (implicitly) convert type 'MySimpleStruct' to 'System.Json.JsonObject'
MySimpleStruct myStruct;
myStruct.x = 1;
myStruct.y = 2;
JsonValue myStructJson = myStruct;
正如我的对象有嵌套在其他对象的几个层次,由我通过它行走和分配所有的值将是一个伟大的PITA。 System.Json有更简单的方法吗?
更好的做法会一直修改原来的问题包括以下信息:) – Luke 2011-02-17 10:08:29
大声笑不被所以粗鲁@Luke;)但我同意你:)反正我希望有人可以帮助他/她的问题JSON它不是我的事情:p – dalexsoto 2011-02-17 16:58:15