解析c#中的JArray对象
本文关键字:对象 JArray 中的 解析 | 更新日期: 2023-09-27 18:03:08
我有一个名为response
的JArray对象,其值为:
{[
{"alternatives": [
{
"transcript": "some text",
"confidence": 0.77053386
}
]
},
{"alternatives": [
{
"transcript": " some other text",
"confidence": 0.84036005
}
]
}
]}
我试图访问transcript
值并将它们连接在一起。这是我的代码:
var results = response.ToObject<IList<Alternatives>>();
string mostConfidentTranscript = "";
foreach (var r in results)
mostConfidentTranscript += r.transcript + "'n";
其中Alternatives
类定义为:
public class Alternatives
{
public double confidence { get; set; }
public string transcript { get; set; }
}
代码编译没有错误,但是,results
是一个空列表。我错过了什么?
payload是不正确的,如果你的意思是发布对象列表,最好更改为:
{"value":[...]}
则可以将其作为jobobject读取,并获得JArray的值。
using Newtonsoft.Json.Linq;
result = response.Content.ReadAsAsync<JObject>().Result;
var results = result["value"] as JArray;
提供的JSON无效。稍微修改一下,这就是我的工作-
public class Alternative
{
public double confidence { get; set; }
public string transcript { get; set; }
}
public class RootObject{
public List<Alternative> Alternatives{get;set;}
}
var json = "[{'alternatives':[{'transcript':'some text','confidence':0.77053386}]},{'alternatives':[{'transcript':' some other text','confidence':0.84036005}]}]";
var res = JsonConvert.DeserializeObject<List<RootObject>>(json);
// output : "some text: some other text"
Console.WriteLine(res[0].Alternatives[0].transcript + ":" + res[1].Alternatives[0].transcript);