JSon中的对象无效

时间:2013-10-05 14:16:33

标签: json c#-4.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对象的定义中指出违规行为,那将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

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

JArray json = JArray .Parse(text);