我在尝试解码json对象时遇到错误:
代码:
public class retData
{
public string Text { get; set; }
}
private void btnCreateProject_Click(object sender, EventArgs e)
{
string jsonResponse = Helpers.translateText("Some {useful|helpful|beneficial|valuable|handy|practical} {tips|suggestions|ideas|guidelines|recommendations|strategies} for {getting|obtaining|acquiring|receiving|finding|having} {best|very best|greatest|ideal|finest|most effective} and {professional|expert|skilled|specialist|qualified|experienced} carpet {cleaning|cleansing} {services|solutions|providers|companies|expert services|products and services}%first_paragraph-article%Some {useful|helpful|beneficial|valuable|handy|practical} {tips|suggestions|ideas|guidelines|recommendations|strategies} for {getting|obtaining|acquiring|receiving|finding|having} {best|very best|greatest|ideal|finest|most effective} and {professional|expert|skilled|specialist|qualified|experienced} carpet {cleaning|cleansing} {services|solutions|providers|companies|expert services|products and services}", "de", txtBoxYandexAPI.Text);
retData theText = JsonConvert.DeserializeObject<retData>(jsonResponse);
}
响应JSON是:
{"code":200,"lang":"en-de","text":["Einige {nützlich|hilfreich|nützlich|wertvoll|nützlich|praktisch} {Tipps|Vorschläge|Ideen|Leitlinien|Empfehlungen|Strategien} {Anreise|Beschaffung|Erwerb|erhalten|finden|haben} {besten|besten|größten|ideal|besten|meisten effektive} und {professional|expert|qualifizierten|Spezialisten|qualifizierte|erfahrene} Teppich {Reinigung|cleansing} {Dienstleistungen|Lösungen|Dienstleister|Unternehmen|expert services|Produkte und Dienstleistungen} %first_paragraph-Artikel% Einige {nützlich|hilfreich|nützlich|wertvoll|nützlich|praktisch} {Tipps|Vorschläge|Ideen|Leitlinien|Empfehlungen|Strategien} {Anreise|Beschaffung|Erwerb|erhalten|finden|haben} {besten|besten|größten|ideal|besten|meisten effektive} und {professional|expert|qualifizierten|Spezialisten|qualifizierte|erfahrene} Teppich {Reinigung|cleansing} {Dienstleistungen|Lösungen|Dienstleister|Unternehmen|expert services|Produkte und Dienstleistungen} "]}
我得到的错误是:其他信息:解析值时遇到意外的字符:[。路径&#39;文字&#39;,第1行,第35位。我使用newtonsoft json包,我没有看到问题,JSON响应看起来对我来说是正确的它
答案 0 :(得分:3)
你必须像json一样为文本创建List<string>
,key包含字符串数组。
所以它看起来像
public static void Main()
{
string jsonResponse = "{\"code\":200,\"lang\":\"en-de\",\"text\":[\"Einige {nützlich|hilfreich|nützlich|wertvoll|nützlich|praktisch} {Tipps|Vorschläge|Ideen|Leitlinien|Empfehlungen|Strategien} {Anreise|Beschaffung|Erwerb|erhalten|finden|haben} {besten|besten|größten|ideal|besten|meisten effektive} und {professional|expert|qualifizierten|Spezialisten|qualifizierte|erfahrene} Teppich {Reinigung|cleansing} {Dienstleistungen|Lösungen|Dienstleister|Unternehmen|expert services|Produkte und Dienstleistungen} %first_paragraph-Artikel% Einige {nützlich|hilfreich|nützlich|wertvoll|nützlich|praktisch} {Tipps|Vorschläge|Ideen|Leitlinien|Empfehlungen|Strategien} {Anreise|Beschaffung|Erwerb|erhalten|finden|haben} {besten|besten|größten|ideal|besten|meisten effektive} und {professional|expert|qualifizierten|Spezialisten|qualifizierte|erfahrene} Teppich {Reinigung|cleansing} {Dienstleistungen|Lösungen|Dienstleister|Unternehmen|expert services|Produkte und Dienstleistungen} \"]}";
retData theText = JsonConvert.DeserializeObject<retData>(jsonResponse);
}
public class retData
{
public List<string> text { get; set; }
}
答案 1 :(得分:0)
将此作为retdata
对象:
public class retData
{
public int code { get; set; }
public string lang { get; set; }
public List<string> text { get; set; }
}
text
是字符串数组。
答案 2 :(得分:0)
看起来你的text属性是一个包含一个组件的数组,所以基本上你需要弄清楚它。
基本上,您正在考虑使用以下类进行反序列化:
public class retData
{
public int code { get; set; }
public string lang { get; set; }
public string[] text { get; set; }
}
之后,您需要从text属性获取.FirstOrDefault()
或索引[0]
以获取该字符串。
P.S:如果你不使用code
和lang
,你可以将它们留在retData
课程之外。