将JSON字符串格式转换为URL编码c#
我有一个基于c#的字符串JSON,包含简单和复杂的对象,如下所示:将JSON字符串格式转换为URL编码c#,c#,json,urlencode,C#,Json,Urlencode,我有一个基于c#的字符串JSON,包含简单和复杂的对象,如下所示: { "simple1": "xxx", "simple2": "xxx", "complex": { "complex_a": [{ "complex_a_1_1": "aa", "complex_a_1_2": "aa" }, { "complex_a_2_1": 308, "complex_a_2_2": "select_option"
{
"simple1": "xxx",
"simple2": "xxx",
"complex": {
"complex_a": [{
"complex_a_1_1": "aa",
"complex_a_1_2": "aa"
}, {
"complex_a_2_1": 308,
"complex_a_2_2": "select_option"
}],
"complex_b": [{
"complex_b_1": "aa",
"complex_b_2": "bb"
}]
}
}
现在我想将其转换为url编码,如下所示:
string urlEncoded = "simple1=xxx&simple2=xxx&complex=%7Bcomplex_a=%5B%7Bcomplex_a_1_1=aa(...)%7B%5B%"
我试过了
HttpUtility.UrlEncode(JsonConvert.SerializeObject(myJsonString))
但它对基于json的字符进行编码
有人知道怎么做吗?可能是您正在序列化JSON,而不是反序列化它。下面是一个如何加载JSON文件并在.NETCore中编码的示例
string json;
using (var r = File.OpenText(@".\contents.json")) {
json = r.ReadToEnd();
}
var data = JsonConvert.DeserializeObject(json);
var encoded = WebUtility.HtmlEncode(data);
JSON已经序列化。序列化意味着将对象转换为字符串。因为它已经是一个字符串,所以已经序列化了
您需要将其反序列化为对象,然后对其进行URL编码