自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C# 解析 key 值動態(tài)的 json 數(shù)據(jù)

開發(fā) 后端
之前在對接第三方的api的時候,對方給的數(shù)據(jù)格式是這樣的json,就是沒有字段屬性這一說 ,都是數(shù)據(jù),而且格式還是不固定的。

背景

之前在對接第三方的api的時候,對方給的數(shù)據(jù)格式是這樣的json

就是沒有字段屬性這一說 ,都是數(shù)據(jù),而且格式還是不固定的。

第一眼看到這東西,心里第一反應(yīng)是想罵人,但是沒辦法,睡覺人家是大爺。

那就的想辦法解析成我們看得懂的數(shù)據(jù)。

思路

仔細(xì)觀察發(fā)現(xiàn),鍵值對的規(guī)律是第一個字段是string 類型,但是第二個是對象類型。加上沒有字段名稱。所以第一想到的是Dictionary。

下面看下Dictionary特性:

  • 必須包含名空間System.Collection.Generic   
  • Dictionary里面的每一個元素都是一個鍵值對(由二個元素組成:鍵和值)   
  • 鍵必須是唯一的,而值不需要唯一的   
  • 鍵和值都可以是任何類型(比如:string, int, 自定義類型,等等)   
  • 通過一個鍵讀取一個值的時間是接近O(1)   
  • 鍵值對之間的偏序可以不定義

所以對應(yīng)的c# 類型是Dictionary<string, dynamic>>。

眼見為實,那么接下來我們來驗證下是否可行。

(1) nuget引用 using Newtonsoft.Json;

(2) 準(zhǔn)備一段數(shù)據(jù)

{
    "r545454aa":"gfgf方(rttr)",
    "111":"機(jī)trtrrt",
  
    "rrr":"2022-02-11",
    "tt":[
        "ghhg",
        "nbbn"
    ],
    "545454":"fdfdfd"
   
}

(3) 解析  JsonConvert.DeserializeObject<Dictionary<string, dynamic>>

   private string Convertjson(string jsonStr)
        {
            var model = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(jsonStr);
            List<QAModel> list = new List<QAModel>();
            foreach (var item in model)
            {
            。。。。。。。。。。。。
            }
            }

(4) 到這里我們測試發(fā)現(xiàn),數(shù)據(jù)正常解析了,接下來我們就是對dynamic進(jìn)行再次解析了。

  if (item.Value is string)
                {
                    Text = item.Value;
                }
                else
                {
                    。。。。。。。。。。。。。
                }

到此,問題解決。

責(zé)任編輯:趙寧寧 來源: 后端Q
相關(guān)推薦

2009-09-01 18:32:32

C#動態(tài)數(shù)組

2009-09-07 03:58:42

WinForm傳值

2009-09-02 16:20:22

C#動態(tài)創(chuàng)建數(shù)組

2009-09-02 16:14:21

C#動態(tài)創(chuàng)建數(shù)組

2009-09-02 10:58:02

C#動態(tài)數(shù)組

2009-09-02 11:02:57

C#動態(tài)數(shù)組

2009-09-17 18:07:22

C#動態(tài)數(shù)組

2009-09-09 14:40:15

C# XML解析

2009-09-02 16:41:56

C#聲明數(shù)組

2009-09-07 15:27:04

C# MessageB

2009-08-31 17:30:10

C#接口的作用

2009-08-31 17:47:43

C#接口使用

2009-09-02 16:30:20

C#定義數(shù)組

2009-08-31 17:16:12

C#實現(xiàn)接口

2009-08-27 17:40:21

C#接口的作用

2009-08-31 18:01:41

C#接口事件

2009-08-03 14:54:23

值類型C#

2024-04-28 11:25:02

C#JSON

2009-09-17 18:14:05

C#動態(tài)數(shù)組

2009-08-27 16:29:18

C#動態(tài)編譯
點贊
收藏

51CTO技術(shù)棧公眾號