c# 인코딩 확인




.Net의 JSON으로 URL 인코딩 된 양식 데이터를 변환하는 몇 가지 옵션은 무엇입니까? (2)

.NET Framework 4.5에는 URL로 인코딩 된 양식 데이터를 JSON으로 변환하는 데 필요한 모든 것이 포함되어 있습니다. 이 작업을 수행하려면 C # 프로젝트의 System.Web.Extension 네임 스페이스에 대한 참조를 추가해야합니다. 그런 다음 변환을 수행하는 데 필요한 모든 것을 제공하는 JavaScriptSerializer 클래스를 사용할 수 있습니다.

코드

using System.Web;
using System.Web.Script.Serialization;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var dict = HttpUtility.ParseQueryString("Property1=A&Property2=B&Property3%5B0%5D%5BSubProperty1%5D=a&Property3%5B0%5D%5BSubProperty2%5D=b&Property3%5B1%5D%5BSubProperty1%5D=c&Property3%5B1%5D%5BSubProperty2%5D=d");
            var json = new JavaScriptSerializer().Serialize(
                                                     dict.Keys.Cast<string>()
                                                         .ToDictionary(k => k, k => dict[k]));

            Console.WriteLine(json);
            Console.ReadLine();
        }
    }
}

출력

{
    "Property1":"A",
    "Property2":"B",
    "Property3[0][SubProperty1]":"a",
    "Property3[0][SubProperty2]":"b",
    "Property3[1][SubProperty1]":"c",
    "Property3[1][SubProperty2]":"d"
}

알림 : 출력물에 줄 바꿈이나 서식이 포함되어 있지 않습니다.

출처 : 어떻게 querystring을 json 문자열로 변환합니까?

application/x-www-form-urlencoded 형식의 서버 데이터를 보내는 웹 요청이 있습니다. application/json 으로 변환하고 싶습니다.

예:

URL로 인코딩 된 양식 데이터 :

Property1=A&Property2=B&Property3%5B0%5D%5BSubProperty1%5D=a&Property3%5B0%5D%5BSubProperty2%5D=b&Property3%5B1%5D%5BSubProperty1%5D=c&Property3%5B1%5D%5BSubProperty2%5D=d

예쁜 버전 :

Property1=A
Property2=B
Property3[0][SubProperty1]=a
Property3[0][SubProperty2]=b
Property3[1][SubProperty1]=c
Property3[1][SubProperty2]=d

위의 데이터는 다음 JSON 데이터로 변환해야합니다.

{
    Property1: "A",
    Property2: "B",
    Property3: [
        { SubProperty1: "a", SubProperty2: "b" },
        { SubProperty1: "c", SubProperty2: "d" }]
}

의문:

이 일을 할 수있는 무료 도구가 있습니까? 나는 자신을 찾을 수 없었고, 존재한다면, 나는 자신을 쓰는 것보다는 오히려 그것을 소비 할 것이지만, 그렇게되면 나는 그렇게 할 것이다.

AC # /. 넷 솔루션이 선호됩니다.


나는 쿼리 문자열과 폼 데이터를 파싱하기위한 유틸리티 클래스를 작성했다. 다음에서 사용할 수 있습니다.

https://gist.github.com/peteroupc/5619864

예:

// Example query string from the question
String test="Property1=A&Property2=B&Property3%5B0%5D%5BSubProperty1%5D=a&Property3%5B0%5D%5BSubProperty2%5D=b&Property3%5B1%5D%5BSubProperty1%5D=c&Property3%5B1%5D%5BSubProperty2%5D=d";
// Convert the query string to a JSON-friendly dictionary
var o=QueryStringHelper.QueryStringToDict(test);
// Convert the dictionary to a JSON string using the JSON.NET
// library <http://json.codeplex.com/>
var json=JsonConvert.SerializeObject(o);
// Output the JSON string to the console
Console.WriteLine(json);

그것이 당신을 위해 작동하는지 알려주세요.





html-form