在JSON.NET中使用LINQ从Dictionary创建JProperty

时间:2011-01-11 07:21:08

标签: c# linq json.net

我需要获得JSON

{
   "question":"q1",
   "answers": {
       1:"ans1",
       2:"ans2",
       3:"ans3"
    }
    "corr":[1,2]
 }

此表达式包含LINQ

JObject jsonContent =
            new JObject(
                new JProperty("question", _question),
                new JProperty("answers",
                    new JObject(
                        from ans in _answers
                        select new JProperty (ans.Key.ToString(),ans.Value))),
                new JProperty("corr",
                    new JArray(
                        from ans in _correctAnswers
                        select ans)));

,其中

string _question;
List<int> _correctAnswers;
Dictionary<int, string> _answers;

我将Dictionary转换为JProperty时遇到问题

System.ArgumentNullException: Value cannot be null.
Parameter name: source

UPD:设置所有值。没有空答案

UPD2:抱歉。一切正常。问题出在数据库访问层

1 个答案:

答案 0 :(得分:0)

看起来字典中的答案可能是空的

尝试: select new JProperty (ans.Key.ToString(),ans.Value ?? string.Empty)