我有一個像這樣的 json 對象數組:[{ "Time-VitalsTime": "2019-06-22T01:01:00", "TimeToEstimate-VitalsTime": 10, "TimeToEstimate-1unit": 5, "TimeToEstimate-2units": 9, "TimeToEstimate-3units": 21, "TimeToEstimate-1week": 13, "TimeToEstimate-2weeks": 16, "TimeToEstimate-3weeks": 20}, { "Time-VitalsTime": "2019-06-22T01:02:00", "TimeToEstimate-VitalsTime": 8, "TimeToEstimate-1unit": 10, "TimeToEstimate-2units": 5, "TimeToEstimate-3units": 9, "TimeToEstimate-1week": 18, "TimeToEstimate-2weeks": 15, "TimeToEstimate-3weeks": 32}, { "Time-VitalsTime": "2019-06-22T01:03:00", "TimeToEstimate-VitalsTime": 10, "TimeToEstimate-1unit": 8, "TimeToEstimate-2units": 10, "TimeToEstimate-3units": 5, "TimeToEstimate-1week": 15, "TimeToEstimate-2weeks": 14, "TimeToEstimate-3weeks": 16}, 我需要把它變成這個形狀(根據 api 文檔):{"data": [ <model-specific-data-structure> ]}然后我用這個: request.Content = new StringContent(JsonConvert.SerializeObject(stringgeneratedabove));將其序列化以發送到 REST api。我從通話中得到的錯誤是:“{\”錯誤\”:\“字符串索引必須是整數\”}”一位朋友說我需要將數組傳遞到名為“data”的屬性中。在網上進行了大量搜索后,我不知道從哪里開始。我嘗試做這樣的事情:[DataContract]public class CsvDataClass{ [DataMember] public List<Dictionary<object, object>> CsvData { get; set; } [DataMember] public Dictionary<object, object>[] Data { get { return CsvData.ToArray(); } }}根據朋友的說法,但無法實施。我搜索過“更改 json c# 的形狀”或“將 json 數組傳遞到屬性”,并且還閱讀了有關 json 對象的一般文檔,但尚未單擊任何內容。
1 回答

慕田峪9158850
TA貢獻1794條經驗 獲得超7個贊
為了將 json 變成所需的形狀,我這樣做了:
var result = "{\"data\":" + jsonString + "}";
其中 jsonString 等于該線程頂部顯示的對象數組,因此我只是手動添加這些值。
我還必須改變這一點:
request.Content = new StringContent(JsonConvert.SerializeObject(result)) request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
到:
request.Content = new StringContent(asjson.ToString(), Encoding.UTF8, "application/json");
- 1 回答
- 0 關注
- 126 瀏覽
添加回答
舉報
0/150
提交
取消