相关疑难解决方法(0)

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

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

.net c# serialization json dynamic

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

如何在ASP.NET中将JSON反序列化为简单的Dictionary <string,string>?

我在JSON中有一个简单的键/值列表,通过POST发送回ASP.NET.例:

{ "key1": "value1", "key2": "value2"}
Run Code Online (Sandbox Code Playgroud)

我并没有想要进入强大的.NET对象

我只需要一个普通的旧的Dictionary(Of String,String),或者一些等价的(hash table,Dictionary(Of String,Object),old-school StringDictionary - hell,一个2-D字符串数组对我有用.

我可以使用ASP.NET 3.5中的任何可用内容,以及流行的Json.NET(我已经将其用于序列化客户端).

显然,这些JSON库都没有开箱即用的明显功能 - 它们完全专注于通过强大的合同进行基于反射的反序列化.

有任何想法吗?

限制:

  1. 我不想实现自己的JSON解析器
  2. 无法使用ASP.NET 4.0
  3. 宁愿远离旧的,已弃用的JSON ASP.NET类

json asp.net-ajax asp.net-3.5 json.net

642
推荐指数
12
解决办法
58万
查看次数

使用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万
查看次数

在j#中将json反序列化为匿名对象

如何将一串json格式的数据转换为匿名对象

.net json

16
推荐指数
2
解决办法
2万
查看次数

在不创建类的情况下反序列化 JSON 响应

从 API 调用的结果来看,我有大量的 JSON 需要处理。

我目前有这个

Object convertObj = JsonConvert.DeserializeObject(responseFromServer);
Run Code Online (Sandbox Code Playgroud)

我知道我可以做类似的事情

Movie m = JsonConvert.DeserializeObject<Movie>(responseFromServer);
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它

m.FieldName
m.AnotherField
//etc
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想做类似的事情

var itemName = convertObj["Name"];
Run Code Online (Sandbox Code Playgroud)

获取列表中第一项的第一个 Name 值。

这是可能的,还是我必须创建一个类来反序列化?

我不想创建类的原因是我不是 API 的所有者,并且字段结构可能会改变。

编辑。

好的,所以我创建了这个类,因为它似乎是最好的方法,但是有没有办法将 JSON 反序列化为列表?

var sessionScans = new List<SessionScan>();
sessionScans = JsonConvert.DeserializeObject<SessionScan>(responseFromServer);
Run Code Online (Sandbox Code Playgroud)

抱怨它无法将 SessionScan 转换为通用列表。

c# json

4
推荐指数
3
解决办法
6902
查看次数

标签 统计

json ×4

.net ×3

c# ×3

json.net ×2

asp.net-3.5 ×1

asp.net-ajax ×1

dynamic ×1

serialization ×1