62,074
社区成员
我现在使用post发送内容,我看网上都是将json格式内容改成string,但是我总是报The remote server returned an error: (400) Bad Request,看网上解决方案 应该是字符串写的不对,能不能有大神帮忙看看转换成string 的字符串应该是啥?
string _postData = "{\"key1\": \"{\\\"A\\\": \\\"a\\\"}\",\"key2\": \"[{\\\"C\\\": \\\"c\\\"},{\\\"D\\\": \\\"d\\\"}]\",\"key2\": \"[{\\\"E\\\": \\\"e\\\"}]\"";
JSON格式如下:
{
"key1": {
"A": "a"
},
"key2": [
{
"C": "c"
},
{
"D": "d"
}
],
"key3": [
{
"E": 36
}
]
}
先定义接受实体类:
public class JsonData
{
public Key1 key1 { get; set; }
public List key2 { get; set; }
public List key3 { get; set; }
}
public class Key1
{
public string A { get; set; }
}
public class Key2
{
public string C { get; set; }
public string D { get; set; }
}
public class Key3
{
public string E { get; set; }
}
在将其转换成实体对象
string jsons = @"{
""key1"": {
""A"": ""a""
},
""key2"": [
{
""C"": ""c""
},
{
""D"": ""d""
}
],
""key3"": [
{
""E"": 36
}
]
}";
JsonData jsonData = JsonConvert.DeserializeObject<JsonData>(jsons);
string jsonData = @"{
""key1"": {
""A"": ""a""
},
""key2"": [
{
""C"": ""c""
},
{
""D"":""d""
}
],
""key3"": [
{
""E"": 36
}
]
}";
var obj = new { key1 = new { a = "a" }, key2 = new[] { new { c = "c", d = "d" } }, key3 = new[] { new { e = 36 } } };
var json=Newtonsoft.Json.JsonConvert.SerializeObject(obj);
Console.WriteLine(json);
一般来说没人手写,,因为涉及到双引单引以及其他问题,.对方不太好解析.
所以定义匿名函数,然后直接转json字符串就好了
你这string是纯手工写的啊,直接把JSON格式解析成string好了