需要在C#中解析非托管JSON

时间:2015-11-25 13:57:46

标签: c# json

我有JSON,它有多个属性,我可以从C#代码解析JSON。主要问题是我的JSON属性会像

一样发生变化

"from":"Arun" ====>这个数据没问题

"from":"{id: 1012718, links: {self: https://www.google.com}, mention_name: NeerajGupta, name: Neeraj Gupta, version: 00000000}" =>以下是问题,这来自第三方API。

"From":"Neeraj Gupta" ====>需要来自内部HTML的这些数据

我需要在JSON数据中解析JSON。

OR

我们可以阅读以下字符串吗?

{id: 1012718, links: {self: https://www.google.com}, mention_name: NeerajGupta, name: Neeraj Gupta, version: 00000000}

2 个答案:

答案 0 :(得分:1)

您必须先修复JSON。然后你可以解析它:

using System;
using Newtonsoft.Json.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string json =
            "{\"id\": \"1012718\", \"links\": {\"self\": \"https://www.google.com\"}, \"mention_name\": \"NeerajGupta\", \"name\": \"Neeraj Gupta\", \"version\": \"00000000\"}";
        dynamic data = JObject.Parse(json);
        Console.WriteLine(data.name);
    }
}
}

如果无法修复输入 - 您可以尝试将其解析为纯文本。

错误JSON的示例:

            string wrongJson =
            "{id: 1012718, links: {self: https://www.google.com}, mention_name: NeerajGupta, name: Neeraj Gupta, version: 00000000}";
        string key = " name: ";
        string part = wrongJson.Remove(0, wrongJson.IndexOf(key) + key.Length);
        Console.WriteLine(part);
        string result = part.Substring(0, part.IndexOf(","));
        Console.WriteLine(result);

答案 1 :(得分:0)

在项目中的Visual Studio中创建一个空白类。复制JSON数据,然后单击EDIT>选择性粘贴> JSON为Class。它将根据您的输出创建相应的JSON类。然后使用任何JSON序列化程序解析JSON,您的问题就会得到解决。