41

列をループして Json オブジェクトを動的に作成する必要があります。そのため、空の json オブジェクトを宣言してから、要素を動的に追加します。

例えば:

List<String> columns = new List<String>{"FirstName","LastName"};

var jsonObj = new {};

for(Int32 i=0;i<columns.Count();i++)
    jsonObj[col[i]]="Json" + i;

最終的な json オブジェクトは次のようになります。

jsonObj={FirstName="Json0", LastName="Json1"};
4

4 に答える 4

55
[TestFixture]
public class DynamicJson
{
    [Test]
    public void Test()
    {
        dynamic flexible = new ExpandoObject();
        flexible.Int = 3;
        flexible.String = "hi";

        var dictionary = (IDictionary<string, object>)flexible;
        dictionary.Add("Bool", false);

        var serialized = JsonConvert.SerializeObject(dictionary); // {"Int":3,"String":"hi","Bool":false}
    }
}
于 2012-04-20T20:21:22.820 に答える
18

を使用する必要がありますJavaScriptSerializer。それはあなたのために実際のタイプをJSONにシリアル化することができます:)

参照: http: //msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx

編集:このようなもの?

var columns = new Dictionary<string, string>
            {
                { "FirstName", "Mathew"},
                { "Surname", "Thompson"},
                { "Gender", "Male"},
                { "SerializeMe", "GoOnThen"}
            };

var jsSerializer = new JavaScriptSerializer();

var serialized = jsSerializer.Serialize(columns);

出力:

{"FirstName":"Mathew","Surname":"Thompson","Gender":"Male","SerializeMe":"GoOnThen"}
于 2012-04-20T19:55:44.843 に答える