簡體   English   中英

從json對象檢索(反序列化)特定屬性到C#結構(json反序列化)

[英]Retrieve(deserialize) a specific property from a json object to a C# struct (json deserialization)

我試圖僅從下面的JSON對象獲取FIRST屬性(參數),並將其存儲為C#中的結構。 我正在使用頁面上的解決方案。 但是我沒有成功。 如果有人可以幫助或指出正確的方向,那將非常有幫助。 謝謝。

{
"params" : [
    {"OneInstance" : "true"},
    {"Single" : "3"},
    {"File_Name" : "test.exe"},
    {"Conf_Name" : "inst.bin"}
],
"directories" : [
    {"file1": "C:/Program Files (x86)/whatever/example"},
    {"file2": "C:/Program Files/another/example"}
]}

public static JValuesStruct paramValues;
StreamReader streamReader = new StreamReader(@"Sample.json");
        using (JsonTextReader reader = new JsonTextReader(streamReader))
        {
            while (reader.Read())
            {
                if (reader.TokenType == JsonToken.StartObject)
                {
                    // Load each object from the stream and do something with it

                    JObject obj = JObject.Load(reader);

                    JsonSerializer serializer = new JsonSerializer();
                    paramValues = (JValuesStruct)serializer.Deserialize(new JTokenReader(obj), typeof(JValuesStruct));
                }
            }
        }


public struct JValuesStruct
{
    public bool OneInstance { get; set; }
    public string Single { get; set; }
    public string File_Name { get; set; }
    public string Conf_Name { get; set; }
}

干得好。 完美的作品。 首先從Nuget下載“ newtonsoft.json”並將其添加到您的項目中。 Struct myStruct是將反序列化的json對象轉換為結構。

public void DeserializeMyJsonObject()
{
    string json;
    using (StreamReader r = new StreamReader("d:\\json.txt"))
    {
        json = r.ReadToEnd();
    }

    var myStruct = JsonConvert.DeserializeObject<YourStruct>(json);

}

public struct YourStruct
{
    [JsonProperty("params")]
    public List<Object> KeyAndProperties { get; set; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM