Это моя строка json в таблице базы данных

{
    "Object":"order",
    "LiveMode":true,
    "Amount":3000,
    "Captured":false,
    "Created":"\/Date(1593359683000)\/",
    "Currency":"usd",
    "Paid":true,
    "List":{
        "Object":"list",
        "Data":[],
        "TotalCount":0
    },
    "Source":{
        "Type":0,
        "Card":{
            "Object":"card",
            "Brand":"Visa",
            "ExpirationMonth":"7",
            "ExpirationYear":"2023",
            "AddressCity":null,
            "AddressCountry":null,
            "Metadata":{},
            "Name":"Lion Mtosh"
        },
        "BankAccount":null,
        "OtherDetails":{}
    }
}

Как мне получить дату создания из этой строки?

var data = (JObject)JsonConvert.DeserializeObject(jsonString);
data["Created"] does not return date value.
-1
Happy Singh 7 Июл 2021 в 14:02

3 ответа

Лучший ответ

Я работаю на меня.

https://dotnetfiddle.net/Widget/p6U5GY

using System;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
                    
public class Program
{
    public static void Main()
    {
        
        var jsonString = "{\"Object\":\"order\",\"LiveMode\":true,\"Amount\":3000,\"Captured\":false,\"Created\":\"/Date(1593359683000)/\",\"Currency\":\"usd\",\"Paid\":true,\"List\":{\"Object\":\"list\",\"Data\":[],\"TotalCount\":0},\"Source\":{\"Type\":0,\"Card\":{\"Object\":\"card\",\"Brand\":\"Visa\",\"ExpirationMonth\":\"7\",\"ExpirationYear\":\"2023\",\"AddressCity\":null,\"AddressCountry\":null,\"Metadata\":{},\"Name\":\"Lion Mtosh\"},\"BankAccount\":null,\"OtherDetails\":{}}}";
        
        var data = (JObject)JsonConvert.DeserializeObject(jsonString);
        
        Console.WriteLine(data["Created"]);
    }
}

Примечание: в конце строки JSON отсутствует закрывающая скобка.

1
golakwer 7 Июл 2021 в 11:14

Вы можете использовать динамический объект, например this

dynamic results = JsonConvert.DeserializeObject<dynamic>(json);
var id = results.Id;
var name= results.Name;
1
Ali Kerimli 7 Июл 2021 в 11:14

Определите класс сущности, содержащий те же имена значений, что и те же типы, а затем сделайте DeserializeObject в сущности

Открытый класс ObjectClass {public int LiveMode {set; get;}. . .

} ObjectClass obj = ((Newtonsoft.Json.Linq.JObject) JsonConvert.DeserializeObject (jsonText)). ToObject ();

-1
Ahmad naser 7 Июл 2021 в 11:13