【问题标题】:Convert string to json using C#使用 C# 将字符串转换为 json
【发布时间】:2019-01-10 14:12:36
【问题描述】:

我是C#的初学者,我有一个很长的字符串,想把它转换成json,字符串是

{"employees":
[{"id":0,"level":0,"label":"Product Names","subitems":
    [{"id":0,"level":1,"label":"Soren","subitemslevel3":
        [{"id":0,"level":2,"label":"AAAA"},{"id":0,"level":2,"label":"bbb"}]},
{"id":0,"level":1,"label":"Test","subitemslevel3":
        [{"id":0,"level":2,"label":"111"},{"id":0,"level":2,"label":"2222"}]}]},
\

有什么想法吗?

【问题讨论】:

  • 如果你希望它在 c# 中执行,则标记错误。你已经尝试过了吗?
  • 我什么都没试过..不知道
  • 试试这个:stackoverflow.com/questions/8291680/…你可能会有一些想法
  • 已经是json了。你到底想要什么?
  • 看看Json.NET

标签: c#


【解决方案1】:

你可以这样做:

var jobject = JsonConvert.DeserializeObject<JObject>(yourVariable);

这是使用 Newtonsoft 的 json 库,您可以从 nuget 获得。

JObject 也是 JSON 对象的 C# 等价物,所以这可能是您想要使用的东西。

【讨论】:

    【解决方案2】:

    你也可以使用,

    JObject.Parse(urJsonString);
    

    JObject 位于 Newtonsoft.Json.Linq 命名空间中。

    【讨论】:

      【解决方案3】:

      您需要按如下方式反序列化您的字符串:

      // Your string here 
      string str = @"[{"categories":
      [{"id":0,"level":0,"label":"Product Names","subitems":
          [{"id":0,"level":1,"label":"Soren","subitemslevel3":
              [{"id":0,"level":2,"label":"AAAA"},{"id":0,"level":2,"label":"bbb"}]},
      {"id":0,"level":1,"label":"Test","subitemslevel3":
              [{"id":0,"level":2,"label":"111"},{"id":0,"level":2,"label":"2222"}]}]},
      {"id":0,"level":0,"label":"Product texts","subitems":
          [{"id":0,"level":1,"label":""},{"id":0,"level":1,"label":"<p>Disney <strong>Princess<\/strong><\/p>\n"},{"id":0,"level":1,"label":"<p>Machines & Mechanisms - <strong>Middle<\/strong><\/p>\n"},{"id":0,"level":1,"label":"64738574"},{"id":0,"level":1,"label":"8765432"},{"id":0,"level":1,"label":"a"},{"id":0,"level":1,"label":"aa"},{"id":0,"level":1,"label":"ab"},{"id":0,"level":1,"label":"abe"},{"id":0,"level":1,"label":"aD!?"},{"id":0,"level":1,"label":"Bionicle"},{"id":0,"level":1,"label":"Disney Princess"},{"id":0,"level":1,"label":"er"},{"id":0,"level":1,"label":"foo foo"},{"id":0,"level":1,"label":"hej"},{"id":0,"level":1,"label":"igen"},{"id":0,"level":1,"label":"meta"},{"id":0,"level":1,"label":"metadata"},{"id":0,"level":1,"label":"metadata from kafka"},{"id":0,"level":1,"label":"Metatest"},{"id":0,"level":1,"label":"q"},{"id":0,"level":1,"label":"Simpsons"},{"id":0,"level":1,"label":"test"},{"id":0,"level":1,"label":"Test 123"},{"id":0,"level":1,"label":"Test Metadata 123"}]},{"id":0,"level":0,"label"      :"Specialist Terms","subitems":[{"id":0,"level":1,"label":"meta"},{"id":0,"level":1,"label":"new category 1111"},{"id":0,"level":1,"label":"secret category"}]}]}]";
      
      // DeSerialize your object 
      JavaScriptSerializer serializer1 = new JavaScriptSerializer();
      object obje = serializer1.Deserialize(str, obj1.GetType());
      

      【讨论】:

      • 我像你说的那样写了字符串,但之后它显示出像 ] 预期的错误,;预计等。
      • 它仍然给出错误,例如;丢失,无法识别的转义序列等。
      • 顺便说一句,obj1 是什么?
      • 这里需要定义obj1,它应该是一个类
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      相关资源
      最近更新 更多