You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#调用Linguee API解析JSON数组失败,求错误排查方案

解决Newtonsoft.Json解析Linguee API响应时的JsonReaderException错误

这个错误我之前排查过好几次,本质上就是你拿到的响应根本不是合法JSON——错误提示里说开头是'S',大概率是服务器返回了错误页面(比如Service Unavailable这类字符串,或者4xx/5xx的HTML错误页),不是你预期的Linguee数据JSON,所以Newtonsoft.Json根本没法解析。

给你一步步排查和解决的思路:

  • 先看原始响应内容,别着急解析
    先把API返回的原始字符串打出来看看,就能立刻知道问题在哪。比如在你的请求代码里加一段:

    using (var client = new HttpClient())
    {
        var fullUrl = URL + urlParameters;
        var response = await client.GetAsync(fullUrl);
        // 先读取原始响应
        var rawContent = await response.Content.ReadAsStringAsync();
        Console.WriteLine(rawContent); // 直接输出看看是啥
        // 再去做解析操作
    }
    

    你十有八九会看到错误文本或者HTML,而不是JSON。

  • 修正请求参数里的转义符
    你的urlParameters里写了&,这是HTML里的转义字符,在C#字符串里应该直接用&!比如把?q=parler&src=fr&ds...改成?q=parler&src=fr&dest=en(补全你的目标语言参数),否则服务器会把&当成参数的一部分,识别不了正确的查询条件,自然返回错误。

  • 确认第三方API的可用性
    你用的是第三方封装的Linguee API(heroku那个地址),Heroku免费实例经常会休眠、限流,或者这个封装API本身已经失效了。可以直接把拼接好的完整URL复制到浏览器里打开,看看返回的是不是合法的JSON。如果浏览器里也返回错误,那要么是API挂了,要么是参数还是不对。

  • 确保模型类和JSON结构匹配
    等你拿到正确的JSON响应后,要确保你的C#模型类和real_examples数组的结构对应上。比如大概是这样的结构(具体字段要根据实际JSON调整):

    public class LingueeResponse
    {
        public List<Example> real_examples { get; set; }
    }
    
    public class Example
    {
        public string source_sentence { get; set; }
        public string target_sentence { get; set; }
        // 其他字段根据实际JSON添加
    }
    

按照这个流程走,应该能快速定位并解决问题。

内容的提问来源于stack exchange,提问作者Leaf Leafword

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:27:53