【发布时间】:2021-09-20 11:12:11
【问题描述】:
我有这个对象数组,其中包含一些字符串和我想从服务器返回的字符串数组:
"[{"original_file_name":"Plain_HAIR.pdf","encrypted_file_name":"UTTSJG13V1EC46J.pdf","is_successful":true,"message":"","email":"[\"testuser@gmail .com\"]","doctype":"HAIR"}]"
在我的本地应用程序中,我有一个如下所示的类:
public class FileUploadResultViewModel
{
public string original_file_name { get; set; }
public string encrypted_file_name { get; set; }
public string is_successful { get; set; }
public string message { get; set; }
public string email { get; set; }
public string doctype { get; set; }
}
if (res.StatusCode == System.Net.HttpStatusCode.OK)
{
return JsonConvert.DeserializeObject<List<FileUploadResultViewModel>>(res.Content);
}
else
{
return null;
}
问题是当它回到本地应用程序时,我收到一条错误消息:
{"错误转换值 "[{"original_file_name":"Plain_HAIR.pdf","encrypted_file_name":"UTTSJG13V1EC46J.pdf","is_successful":true,"message":"","email":"["testuser@gmail.com"] ","doctype":"头发"}]" 输入 'System.Collections.Generic.List`1[Uploader.ViewModels.FileUploadResultViewModel]'。 路径'',第 1 行,位置 1521。"}
是我转换错误还是缺少某些步骤?
编辑:
这是我在服务器上定义对象的方式:
$object = (object) [
'original_file_name' => $item["original_file_name"],
'encrypted_file_name' => $item["file_name"],
'is_successful' => true,
'message' => '',
'email' => NULL,
'doctype' => $item["doctype"]
];
array_push($myArray, $object);
$this->response(json_encode($myArray));
编辑 2:显示检索 json 结果的方法
public FileUploadResultViewModel Upload(List<FileUploadViewModel> sdvm)
{
var js = JsonConvert.SerializeObject(sdvm);
RestClient client = new RestClient();
var link = url;
var username = username;
var password = password;
client.BaseUrl = new Uri(link);
client.Authenticator = new HttpBasicAuthenticator(username, password);
RestRequest request = new RestRequest();
request.AddJsonBody(sdvm);
request.Method = Method.POST;
var res = client.Execute(request);
if (res.StatusCode == System.Net.HttpStatusCode.OK)
{
return JsonConvert.DeserializeObject<FileUploadResultViewModel>(res.Content);
}
else
{
return null;
}
}
【问题讨论】:
-
我看到一个错误:
"is_successful":trueis a bool, not a string -
这与 PHP 没有任何关系。
json_encode()函数只是创建标准的字符串化 json,所以它来自 PHP 的事实在这里无关紧要。 -
@MagnusEriksson 我明白了。我只是想知道生成的 json 是否有任何问题,因为 c# 似乎无法将其解析为对象。
-
您需要定义正确的数据类型,如@RoarS。指出。
-
@MagnusEriksson 我刚刚通过将 is_successful 设置为 bool 进行了测试,并发生了同样的错误。