JSON返回JObject返回类型中的空数组



我从邮递员那里发送了一个请求,它在后端命中了API。该方法的返回类型为JObject。我正在使用JObject解析字符串。分析方法。结果是得到一个空数组。注:对newtonsoft(版本10(的更新是haapped。

// GET /test/custom
[System.Web.Http.ActionName("custom")]
public JObject GetCustom(int Id)
{
try
{
string json = @"{
CPU: 'Intel',
Drives: [
'DVD read/writer',
'500 gigabyte hard drive'
]
}";
JObject rtn = JObject.Parse(json);
return rtn;
}
}
catch (Exception ex)
{
return new JObject();
}
}

此方法返回一个JObject,但来自poster的响应显示一个空数组。邮递员响应

我还在GetCustom方法中尝试了以下代码,但这些代码也返回空。

案例:1

dynamic resultObject = new ExpandoObject();
resultObject.somefield = "somevalue";
resultObject.someotherfield = 1995;
return Json(new { status = "success", result = resultObject });

案例:2

var jObject = new JObject();
jObject.Add("someField", "someValue");
jObject.Add("otherField", 1995);
var newObj = new { status = "success", result = jObject };
var returnThis = JsonConvert.SerializeObject(newObj);
var root = JObject.FromObject(new { sectionData = returnThis });
return root;

案例:3

var cycleJson = JObject.Parse(@"{""name"":""john""}");
//add surname
cycleJson["surname"] = "doe";
//add a complex object
cycleJson["complexObj"] = JObject.FromObject(new { id = 1, name = "test" });
return cycleJson;

案例:4

var json = @"{
CPU: 'Intel',
Drives: [
'DVD read/writer',
'500 gigabyte hard drive'
]
}";
var o = (JObject)JToken.FromObject(json);
return o;

我正在尝试将第三方API返回的对象序列化为JSON。我对第三方API或它返回的对象没有任何控制权。

我找到了一个解决方案,相反,我使用HttpResponseMessage返回JObject。将JObject序列化为字符串,并作为HttpResponseMessage返回,类型为application/json。

public HttpResponseMessage GetCustom(int appId)
var appCustom=JsonConvert.SerializeObject(json);
return new HttpResponseMessage()
{
Content = new StringContent(appCustom, System.Text.Encoding.UTF8, "application/json")
}; 

尝试使用JsonConvert。SerializeObject(结果(。

[HttpGet]
public async Task<IActionResult> CreateItem()
{
try
{
var result = await client.CatalogApi.UpsertCatalogObjectAsync(body: body2);
Console.WriteLine(result.CatalogObject.ToString());
return Ok(JsonConvert.SerializeObject(result));
}
catch (ApiException e)
{
Console.WriteLine("Failed to make the request");
Console.WriteLine($"Response Code: {e.ResponseCode}");
Console.WriteLine($"Exception: {e.Message}");
return BadRequest("Error Error Error");
}
}