【问题标题】:Json string to object C# syntaxJson 字符串到对象 C# 语法
【发布时间】:2014-06-03 18:43:45
【问题描述】:

我是 .net 新手,我正在尝试将 JSON 字符串转换为对象。我编写了以下代码,但它给了我语法错误:

JavaScriptSerializer JSS = new JavaScriptSerializer();
T obj = JSS.Deserialize<T>(String);

它无法识别代码中的T。请帮忙。

我不想创建任何自定义类。 我可以从 json 字符串中获取 JSON,我可以使用它来查找给定键的值

【问题讨论】:

  • 你不需要一个类来反序列化,而不是一个类型,例如String?
  • @gliese581g:'我可以从 json 字符串中获取 JSON,我可以用它来查找给定键的值' - 你的意思是像 Dictionary&lt;string, object&gt;?不,你不能。

标签: c# .net json


【解决方案1】:

您没有在任何地方指定T。此代码应位于泛型类或方法中,其中T 被指定为泛型类型参数。

【讨论】:

  • 在python中,我们可以从json字符串中获取json(dictionary)。我可以从 json 字符串中获取 JSON,我可以使用它来查找给定键的值。
【解决方案2】:

从字面上理解您的代码:

JavaScriptSerializer JSS = new JavaScriptSerializer();
T obj = JSS.Deserialize<T>(String);

String 是一个类型,而不是一个对象。你需要传入你要反序列化的变量:

public class Person
{
   public int Id { get;set; }
   public string Name { get;set; }
}

// Then somewhere else

string json = @"{ ""Id"": 10, ""Name"": ""Jeremy Vines"" }";

JavaScriptSerializer JSS = new JavaScriptSerializer();
Person obj = JSS.Deserialize<Person>(json);

Console.WriteLine("Id: {0}, Name: {1}", obj.Id, obj.Name);

【讨论】:

    【解决方案3】:

    尝试将 T 替换为您期望获得的对象类型。甚至反对,如果你不知道的话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 2019-02-25
      • 1970-01-01
      • 2021-12-31
      相关资源
      最近更新 更多