簡體   English   中英

JSON解析錯誤Newtonsoft

[英]JSON parse error Newtonsoft

我在嘗試解碼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} "]}

我遇到的錯誤是: 其他信息:分析值時遇到意外字符:[。 路徑'text',第1行,位置35。我使用的是newtonsoft json包,我沒有看到這個問題,JSON響應對我來說是正確的,或者是正確的。

您必須像在json中一樣為文本創建一個List<string> ,鍵包含字符串數組。 所以看起來像

        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; }
        }

嘗試將此作為您的retdata對象:

public class retData
{
  public int code { get; set; }
  public string lang { get; set; }
  public List<string> text { get; set; }
}

text是字符串數組。

看起來您的text屬性是一個包含一個組件的數組,因此基本上您需要弄清楚它。

基本上,您正在研究使用以下類進行反序列化:

public class retData
{    
   public int code { get; set; }
   public string lang { get; set; }
   public string[] text { get; set; }
}

然后,您需要從文本屬性中獲取.FirstOrDefault()或按索引[0]來獲取該字符串。

PS:如果您不使用codelang ,則可以將它們保留在retData類之外。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM