Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未处理JsonReaderException_C#_Json - Fatal编程技术网

C# 未处理JsonReaderException

C# 未处理JsonReaderException,c#,json,C#,Json,我正在尝试用C解析JSON。我还尝试了我在堆栈溢出中找到的方法 我的服务的JSON数据如下: [ { "CamsPassword":"abc", "CamsUserName":"123" }, { "CamsPassword":"pucit", "CamsUserName":"556" } ] 我在stack overflow上找到的帖子有不同的JSON格式。我遵循了该代码,但遇到异常,无法解决它

我正在尝试用C解析JSON。我还尝试了我在堆栈溢出中找到的方法

我的服务的JSON数据如下:

[
    { 
        "CamsPassword":"abc",
        "CamsUserName":"123"
    },
    {
        "CamsPassword":"pucit",
        "CamsUserName":"556"
    }
]
我在stack overflow上找到的帖子有不同的JSON格式。我遵循了该代码,但遇到异常,无法解决它

我在项目中使用Newtonsoft.Json.Linq名称空间。它表示无效的JavaScript属性标识符字符:。路径“[1]”,第8行,位置15

这是我的密码:

static void Main(string[] args)
{
    var json = System.IO.File.ReadAllText(@"E:\test.json");

    var objects = JArray.Parse(json); // parse as array  
    foreach (JObject root in objects)
    {
        foreach (KeyValuePair<String, JToken> app in root)
        {

            var pass = (String)app.Value["CamsPassword"];
            var un = (String)app.Value["CamsUserName"];

            Console.WriteLine(pass);
            Console.WriteLine(un);

        }
    }
}

正如@DrKoch在评论中所说的,为什么不使用Json.Net中的反序列化方法呢

你需要一个物体

public class CamsObject
{
    public string CamsPassword { get; set; }
    public string CamsUserName { get; set; }
}
我们走吧:

var json = System.IO.File.ReadAllText(@"E:\test.json");
var camsObjects = JsonConvert.DeserializeObject<CamsObject[]>(json);

你调试过代码吗?@JimAho它在var object=JArray.Parsejson处中断;明文密码?没什么好主意…@RabiaMehmood在运行JArray.Parsejson;之前检查json的值;。它可能不是您所想的。您不应该解析为对象。让Json.Net完成工作,并直接反序列化到类/数组中