c# - API 返回 JSON 返回一半
问题描述
当我在 API 中发出请求时,它会返回一半的 JSON。也许是因为某些传输数据限制。
对于许多数据预期的响应:
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
申请的多条数据返回:
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
已经尝试使用
jsonSerialization maxJsonLength="50000000"
但没有成功
请求接口:
[HttpGet("Sincronizar/{algodoeiraId}")]
public JsonResult GetFardosAlgodoeira(int algodoeiraId, [FromHeader] string DUMANUT)
{
try
{
DateTime? data = null;
if (!String.IsNullOrEmpty(DUMANUT))
{
data = DateTime.ParseExact(DUMANUT, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture).AddMinutes(-20);
}
_service = new FardoService(GetClientConnectionString());
var result = _service.GetFardosAlgodoeira(algodoeiraId, data?.ToString("yyyy-MM-dd HH:mm:ss"));
return Json(result); // result returns me the desired objects, but where I get the data comes in half
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return Json(e);
}
}
客户:
public async Task<RequestResult<T>> Get<T>(string endPoint, DateTimeOffset? dumanut = null, bool mostrarAlertaSemInternet = true)
{
try
{
client.Timeout = TimeSpan.FromMinutes(20);
var request = new HttpRequestMessage(HttpMethod.Get, new Uri(endPoint));
request.Headers.Add("DUMANUT", dumanut?.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss"));
var response = await client.SendAsync(request);
if (response != null && response.IsSuccessStatusCode)
{
var resultString = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<T>(resultString); // ERROR HERE %%%%%%%%
return new RequestResult<T> { Succeeded = true, ObjetoRetorno = result };
}
return null;
}
catch (Exception ex)
{
//Exception .....
}
}
如何确定是否发生此错误?错误:“未终止的字符串。预期的分隔符:”。路径 '[5066].Peso',第 1 行,位置 1191900。”在 DeserializeObject
解决方案
如果您的 json 或 C# 对象具有自引用循环,通常会发生这种情况。因为忽略了看到这个
推荐阅读
- php - PHP数组内存消耗
- java - 我应该如何建立一个多语言的帮助中心?
- odoo - 如何在odoo中按顺序添加动态前缀
- android - WorkManager - PeriodicWorkRequest 在 android api 21 上不起作用
- php - array_map 函数返回空变量
- javascript - React Javascript - 根据内部嵌套数组值对数组进行排序
- c# - 通过 RESTful WCF 服务进行连续计时并发 SQL 表插入速度减慢,直到客户端收到 HTTP 超时
- python - g++ 无法在 Windows 上构建自定义 TensorFlow GPU 操作(来自已安装的二进制文件)
- android - 将base64字符串发送到服务器不正确的大小
- c# - 什么是 /invokerPRAID?