如何反序列化这些?


需要是动态的,因为行是动态的。 也不能使用其他第 3 方 dll,因为应用程序是 .net 3.5。 我正在使用 JavaScriptSerializer

JSON
{
 "0": {
        "caseNumber": "###",
        "name": "###, ###",
        "birthYear": "###",
        "caseLocation": "###",
        "caseType": "###",
        "dateFiled": "##/##/##",
        "type": "",
        "query": {
            "firstName": "###",
            "lastName": "###",
            "dateOfBirth": "####-##-##",
            "fileDateBegin": "####",
            "fileDateEnd": "####"
        },
        "color": "###",
        "names": [
            "###, ###"
        ],
        "rank": "###",
        "s": ###
    },
    "1": {
        "caseNumber": "###",
        "name": "###, ###",
        "birthYear": "###",
        "caseLocation": "###",
        "caseType": "###",
        "dateFiled": "##/##/##",
        "type": "",
        "query": {
            "firstName": "###",
            "lastName": "###",
            "dateOfBirth": "####-##-##",
            "fileDateBegin": "####",
            "fileDateEnd": "####"
        },
        "color": "###",
        "names": [
            "###, ###"
        ],
        "rank": "###",
        "s": ###
    },
    "failed": 0
}

我尝试过的:

用 jsonconvert. 但需要创建一个独立的类,因为应用程序是 .net 3.5 框架,并且不适用于较新的 newtown.json

尝试过此操作但没有返回任何行。

C#
public class SearchIndex
{
    public string caseNumber { get; set; }
    public string name { get; set; }
    public int? birthYear { get; set; }
    public string caseLocation { get; set; }
    public string caseType { get; set; }
    public DateTime? dateFiled { get; set; }
    public string type { get; set; }
    public string color { get; set; }
}

解决方案1

您可以使用 Visual Studio 功能为 Json 创建独立的类。 创建一个空的 C# 类,将 JSON 复制到剪贴板,然后使用菜单项“编辑”>“选择性粘贴”>“将 JSON 粘贴为类” – 您将获得 JSON 的 C# 代码。 请点击以下链接创建用于反序列化的类。 使用将 JSON 粘贴为类功能将 JSON 转换为 C# 类[^]

解决方案2

我做到了。 由于 JSON 的动态响应具有数字,因此该属性也显示数字。 需要是一个可以吸收尽可能多的 JSON 响应的类

公共类根对象
{
公共 _0 _0 { 得到; 放; }
公共 _1 _1 { 得到; 放; }
公共 _2 _2 { 得到; 放; }
公共 _3 _3 { 得到; 放; }
公共 _4 _4 { 得到; 放; }
公共 _5 _5 { 得到; 放; }
公共 _6 _6 { 得到; 放; }
公共 _7 _7 { 得到; 放; }
公共 _8 _8 { 得到; 放; }
公共 _9 _9 { 得到; 放; }
公共 _10 _10 { 得到; 放; }
公共 _11 _11 { 得到; 放; }
公共 _12 _12 { 得到; 放; }
公共 int 失败 { 获取; 放; }
}

公开课_0
{
公共字符串案例编号{获取; 放; }
公共字符串名称{获取; 放; }
公共字符串出生年{获取; 放; }
公共字符串 caseLocation { 获取; 放; }
公共字符串 caseType { 获取; 放; }
公共字符串 dateFiled { 获取; 放; }
公共字符串类型{获取; 放; }
公共查询查询{获取; 放; }
公共字符串颜色{获取; 放; }
公共字符串[] 名称 { 得到; 放; }
公共字符串等级{获取; 放; }
公共 int s { 得到; 放; }
}

公共类查询
{
公共字符串名字{获取; 放; }
公共字符串姓氏{获取; 放; }
公共字符串出生日期{获取; 放; }
公共字符串 fileDateBegin { 获取; 放; }
公共字符串 fileDateEnd { 获取; 放; }
}

公开课_1
{
公共字符串案例编号{获取; 放; }
公共字符串名称{获取; 放; }
公共字符串出生年{获取; 放; }
公共字符串 caseLocation { 获取; 放; }
公共字符串 caseType { 获取; 放; }
公共字符串 dateFiled { 获取; 放; }
公共字符串类型{获取; 放; }
公共查询1查询{获取; 放; }
公共字符串颜色{获取; 放; }
公共字符串[] 名称 { 得到; 放; }
公共字符串等级{获取; 放; }
公共 int s { 得到; 放; }
}

公共类查询1
{
公共字符串名字{获取; 放; }
公共字符串姓氏{获取; 放; }
公共字符串出生日期{获取; 放; }
公共字符串 fileDateBegin { 获取; 放; }
公共字符串 fileDateEnd { 获取; 放; }
}….

コメント

タイトルとURLをコピーしました