1

linq を使用して、データのリストを特定の形状に成形し、ajax 呼び出しから Json として返そうとしています。

このデータを考えると:

var data = new List<string>();
data.Add("One");
data.Add("Two");
data.Add("Three");

そして、このコード: ** これは正しくなく、修正する必要があります!! **

var shaped = data.Select(c =>
    new { c = c }
).ToList();

serializer.Serialize(shaped,sb);
string desiredResult = sb.ToString();

私はなりたいですdesiredResult

{
    "One": "One",
    "Two": "Two",
    "Three": "Three"
}

しかし、現在は次のとおりです。

{ "c" : "One" },{ "c" : "Two" }など

1 つの問題は、オブジェクト初期化子の左側で、それ自体でcはなく、の値が必要なcことです...

4

4 に答える 4

1

JSON.NETの使用はどうですか?

于 2008-10-09T08:13:13.727 に答える
1

json では、「c」の「c」:「One」はプロパティ名です。また、C# の世界では、その場でプロパティ名を作成することはできません (System.ComponentModel を無視します)。

基本的に、やりたいことはできないと思います。

于 2008-10-08T06:05:56.137 に答える
1

パフォーマンスではなく、正確さのために提供されるソリューション。

        List<string> data = new List<string>()
        {
            "One",
            "Two",
            "Three"
        };

        string result =
            "{ "
            +
            string.Join(", ", data
              .Select(c => @"""" + c + @""": """ + c + @"""")
              .ToArray()
            ) + " }";
于 2008-10-08T13:44:23.467 に答える