相关疑难解决方法(0)

将JSON反序列化为C#动态对象?

有没有办法将JSON内容反序列化为C#4动态类型?为了使用DataContractJsonSerializer,跳过创建一堆类会很不错.

.net c# serialization json dynamic

919
推荐指数
22
解决办法
67万
查看次数

使用Json.net将json对象反序列化为动态对象

是否可以使用json.net从json反序列化返回动态对象?我想做这样的事情:

dynamic jsonResponse = JsonConvert.Deserialize(json);
Console.WriteLine(jsonResponse.message);
Run Code Online (Sandbox Code Playgroud)

.net c# json.net

411
推荐指数
8
解决办法
34万
查看次数

将JSON反序列化为匿名对象

在C#中,我已经使用这样的代码成功地将匿名对象序列化为JSON ...

var obj = new { Amount = 108, Message = "Hello" };
JavaScriptSerializer serializer = new JavaScriptSerializer();
String output = serializer.Serialize(obj);
Run Code Online (Sandbox Code Playgroud)

但是,我希望以后能够将JSON字符串反序列化为匿名对象.像这样......

var obj2 = serializer.Deserialize(output, object);
Run Code Online (Sandbox Code Playgroud)

但是serializer.Deserialize()方法需要第二个参数,它是要反序列化的对象类型.

我试过这个......

var obj2 = serializer.Deserialize(output, obj.GetType());
Run Code Online (Sandbox Code Playgroud)

但这会产生错误:

没有为'<> f__AnonymousType0`2 [[System.Int32,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089],[System.String,mscorlib,Version = 4.0.0.0,Culture]的类型定义无参数构造函数=中立,PublicKeyToken = b77a5c561934e089]]'.

我不确定这个错误意味着什么.

c# asp.net json

41
推荐指数
4
解决办法
6万
查看次数

将json反序列化为匿名类型列表

我有一个json如下:

  "[{"a":"b","c":"d"},{"a":"e","c":"f"},{"a":"g","c":"h"}]"
Run Code Online (Sandbox Code Playgroud)

现在我想把它变成匿名类型"foo"的对象列表

  var foo=new { a=string.empty , c=string.empty };
Run Code Online (Sandbox Code Playgroud)

代码是:

  ServiceStackJsonSerializer Jserializer = new ServiceStackJsonSerializer();
  dynamic foos = Jserializer.Deserialize<List<foo.GetType()>>(jsonString);
Run Code Online (Sandbox Code Playgroud)

但没有工作.

更新:

更换ServiceStackJavascriptSerializer和传球dictionary[]来解决,而不需要将问题anonymous类型

        JavaScriptSerializer jSerializer = new JavaScriptSerializer();
        var Foos = jSerializer.Deserialize<Dictionary<string, object>[]>(jsonString);
Run Code Online (Sandbox Code Playgroud)

asp.net json anonymous-types servicestack

6
推荐指数
1
解决办法
4828
查看次数