【发布时间】:2019-06-21 03:18:54
【问题描述】:
我正在从我的一个 API 获取数据以进行语言转换
这是我的查询
var jsonResponse = response.Content.ReadAsStringAsync().Result;
以下是我的示例数据
[{"detectedLanguage":{"language":"en","score":1.0},"translations":[{"text":"All","to":"en"},{"text":"सभी","to":"hi"}]}]
现在我想转换 List 中的数据
所以我根据我的数据创建了一些类
public class translations
{
public string text { get; set; }
public string to { get; set; }
}
public class detectedLanguage
{
public string language { get; set; }
public float score { get; set; }
}
public class TranslatedString
{
public List<detectedLanguage> detectedLanguage { get; set; }
public List<translations> translations { get; set; }
}
并使用newtonsoft.Json 将此数据转换为如下列表
JavaScriptSerializer json_serializer = new JavaScriptSerializer();
TranslatedString routes_list = (TranslatedString)json_serializer.DeserializeObject(jsonResponse);
但我收到如下错误
Unable to cast object of type 'System.Object[]' to type 'Avalon.TranslatedString'.
可以做些什么来解决这个问题?
【问题讨论】:
-
你根本没有使用json.net,你使用的是javascriptserializer。你的意思是使用哪个?
-
detectedLanguage可以不止一个吗? -
不会有
标签: c# asp.net-web-api json.net