0

我试图学习 json 并将 www.json.com 中的知识应用到我的 c# 测试项目中,但遇到了一些障碍。希望任何有过 json 和 c# 经验的人都可以在我的黑暗洞穴中有所启发..:) 我有这个代表 json 对象的文本文件

[{
"STATES":"some state 1",
"STATE":[{"STATES":"null","ID":"id 1","func":"function1","update":"action1"},
         {"STATES":"null","ID":"id 2","func":"null","update":"null"}]
},
{
"STATES":"some state 2",
"STATE":[{"STATES":"null","ID":"id 1","func":"function1","update":"action2"},{"STATES":"null","ID":"id 2"}]
}]

我有一个快速而肮脏的测试 C# 项目

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using Newtonsoft.Json.Linq;

namespace TestJson
{
    class Program
    {
        static void Main(string[] args)
        {

            string text = File.ReadAllText("JsonTest.txt");
            JObject json = JObject.Parse(text);
            Console.WriteLine("{0}", text);
            Console.ReadLine();
        }
     }
}

我的目标非常简单直接。从文本文件中读取 json 并解析 json 对象。编译很好,但是当我尝试运行它时,我收到一个 JSon 异常错误,告诉我我的对象不是 JSon。

我从 json.org 阅读了文档,并认为我理解了对象的定义,显然,我遗漏了一些东西。如果有人能指出我的 json 对象定义中的违规行为,将不胜感激。

谢谢!

4

1 回答 1

1

您的数据不是 JSON 对象,而是 JSON 数组。所以你需要用JArray类来解析它:

JArray json = JArray .Parse(text);
于 2013-10-05T14:22:07.783 回答