c# - 验证文件后错误无效的 json 原语

标签 c# json

我尝试使用 javascriptserializer 反序列化我的 json,但收到错误“无效的 json 原语”

其他帖子提到要验证 json,我也这样做了。

JavaScriptSerializer sr = new JavaScriptSerializer();
dynamic jsonObject = sr.DeserializeObject(@"TableReloadStatus.json");
jsonObject.SchemaName = "Test";
var modifiedJsonString = sr.Serialize(jsonObject);

我的JSON:

[{
    "Tables":[
    {
        "ServerName": "win-3hog2kbe0g2",
        "TaskName": "tskMovieDemoUAT2",
        "SchemaName": "MOVIEDEMO",
        "TableName": "MOVIE_FACT_HDFS_EXT_TAB",
        "DateReload": "01/25/2019"
    },
    {
        "ServerName": "win-3hog2kbe0g2",
        "TaskName": "tskMovieDemoUAT",
        "SchemaName": "MOVIEDEMO",
        "TableName": "MOVIE_FACT_HDFS_EXT_TAB",
        "DateReload": "01/24/2019"
    }
    ]
}]

最佳答案

有一个 JSON 数组包含 Tables另一个 JSON 数组不是对象,因此您可以尝试使用它。

JavaScriptSerializer sr = new JavaScriptSerializer();
dynamic jsonObject = sr.DeserializeObject(@"TableReloadStatus.json");
jsonObject[0].Tables[0].SchemaName = "Test";

我推荐json.net图书馆。

我会使用类模型来携带该 JSON,而不是使用 dynamic

JsonConvert.DeserializeObject<T>

public class Table
{
    public string ServerName { get; set; }
    public string TaskName { get; set; }
    public string SchemaName { get; set; }
    public string TableName { get; set; }
    public string DateReload { get; set; }
}

public class RootObject
{
    public List<Table> Tables { get; set; }
}

然后使用会像。

string jsonData = File.ReadAllText(@"TableReloadStatus.json");
var jsonObject = JsonConvert.DeserializeObject<List<RootObject>>(jsonData);

c# online

关于c# - 验证文件后错误无效的 json 原语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54360276/

相关文章:

c# - 仅当匹配文件存在时才移动文件

javascript - JSON.parse 给我一个错误,但 JSONLint 说它是一个有效的 json

json - PostgreSQL。创建嵌套的 json 对象

c# - 上传捕获的图像进行解析(解析对象)

C# 在从 Excel 复制的字符串中找不到空格

c# - 使用 IE 缓存

javascript - 动态访问json数组元素的方法

json - 有什么方法可以将JSON文件捆绑到Jar文件中?

node.js - Node js访问json结果中的值并获取该值

c# - Mono.Webkit (webkit-sharp),从 javascript 访问 c# 对象、函数