JSON 字符串格式到 URL 编码 c#

问题描述 投票:0回答:1

我有一个基于 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"
    }],
    "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 的字符进行编码。

有人知道怎么做吗?

c# json urlencode
1个回答
0
投票

您可能正在序列化 JSON,而不是反序列化它。以下是如何加载 JSON 文件并在 .Net Core 中对其进行编码的示例。

string json;
using (var r = File.OpenText(@".\contents.json")) {
    json = r.ReadToEnd();
}

var data = JsonConvert.DeserializeObject(json);

var encoded = WebUtility.HtmlEncode(data);

JSON 已经序列化。序列化的意思是把一个对象变成一个字符串。因为它已经是一个字符串,所以它已经序列化了。

您需要将其反序列化为对象,然后对其进行 URL 编码。

© www.soinside.com 2019 - 2024. All rights reserved.