Feedback on Collection Expressions · dotnet/csharplang · Discussion #7666 (original) (raw)

I'd love to be able to use collection expressions to type JSON literals. For example, https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/use-dom has this sample code:

    var forecastObject = new JsonObject
    {
        ["Date"] = new DateTime(2019, 8, 1),
        ["Temperature"] = 25,
        ["Summary"] = "Hot",
        ["DatesAvailable"] = new JsonArray(
            new DateTime(2019, 8, 1), new DateTime(2019, 8, 2)),
        ["TemperatureRanges"] = new JsonObject
        {
            ["Cold"] = new JsonObject
            {
                ["High"] = 20,
                ["Low"] = -10
            }
        },
        ["SummaryWords"] = new JsonArray("Cool", "Windy", "Humid")
    };

but it would be nice to write it as something like this:

    JsonObject forecastObject =
    [
        "Date": new DateTime(2019, 8, 1),
        "Temperature": 25,
        "Summary": "Hot",
        "DatesAvailable": [new DateTime(2019, 8, 1), new DateTime(2019, 8, 2)],
        "TemperatureRanges":
        [
            "Cold": ["High": 20, "Low": -10]
        ],
        "SummaryWords": ["Cool", "Windy", "Humid"]
    ];