从json文件中获取特定ID

时间:2016-05-12 09:27:33

标签: c# json

这是我的json文件

{
    {
        "@odata.context": "https://api.onedrive.com/v1.0/$metadata#drives('me')/items('root')/children/$entity",
        "createdBy": {
            "application": {
                "displayName": "Nopbackup",
                "id": "4c190e01"
            },
            "user": {
                "displayName": "pallav jha",
                "id": "611c19eb038d5aa1"
            }
        },
        "createdDateTime": "2016-05-12T07:25:36.463Z",
        "cTag": "adDo2MTFDMTlFQjAzOEQ1QUExITEyNC42MzU5ODYzODk5MTI3MDAwMDA",
        "eTag": "aNjExQzE5RUIwMzhENUFBMSExMjQuMw",
        "id": "611C19EB038D5AA1!124",
        "lastModifiedBy": {
            "application": {
                "displayName": "Nopbackup",
                "id": "4c190e01"
            },
            "user": {
                "displayName": "pallav jha",
                "id": "611c19eb038d5aa1"
            }
        },
        "lastModifiedDateTime": "2016-05-12T08:36:31.27Z",
        "name": "Nopbackup",
        "parentReference": {
            "driveId": "611c19eb038d5aa1",
            "id": "611C19EB038D5AA1!105",
            "path": "/drive/root:"
        },
        "size": 0,
        "webUrl": "https://onedrive.live.com/redir?resid=611C19EB038D5AA1!124",
        "fileSystemInfo": {
            "createdDateTime": "2016-05-12T07:25:36.463Z",
            "lastModifiedDateTime": "2016-05-12T08:36:31.27Z"
        },
        "folder": {
            "childCount": 0
        }
    }
}

我希望得到这个“id”:来自json的“4c190e01”

dynamic value = Newtonsoft.Json.JsonConvert.DeserializeObject(result);
string id = Convert.ToString(value.id[0]);

这是我的代码,但我没有得到4c190e01 id

3 个答案:

答案 0 :(得分:1)

将代码重写为以下内容......

dynamic valuePoco = Newtonsoft.Json.JsonConvert.DeserializeObject(result);
string id = Convert.ToString(valuePoco.createdBy.application.id);

答案 1 :(得分:1)

您可以使用所需属性的路径。如果要选择4c190e01为id的元素,可以使用

string id = value.createdBy.application.id;

string id = value.lastModifiedBy.application.id;

取决于您的需求。

正如有人指出的那样,您需要先修复JSON并删除第一个{和最后一个}

答案 2 :(得分:0)

首先,你的json是无效的。 您需要从顶部删除一个declare @today int set @today=DATEPART(dw,GETDATE())-2 print @today select cast (cfv.value as VARCHAR) from CompanyFieldvalues cfv join CompanyFields cf on cf.companyFieldId=cfv.companyFieldId where cf.name='NextDeliveryDates' and cfv.companyId in( select cfv.companyId from CompanyFieldvalues cfv join Companies c on c.companyId=cfv.companyId where cfv.value='Retailer' and c.status=1) and (cfv.value like '%,' + cast (@today as VARCHAR) or cfv.value like '%' + cast (@today as VARCHAR)) and case when (@today != 0 or @today!=1) then (cfv.value not like '%,0' or cfv.value not like '%,1') ,从底部删除{,然后使用以下代码:

}