C# JObject使用变量作为值解析数据

C# JObject使用变量作为值解析数据,c#,asp.net,json,algolia,C#,Asp.net,Json,Algolia,当我需要一个变量设置一个值时,我正在尝试破译使用JObject Parse的正确语法。这是为了使用Algolia将新对象推送到我的搜索索引 songIndexHelper.PartialUpdateObject(JObject.Parse(@"{""ApprovalFL"":"true", ""objectID"":"'+Accepted.Value+'"}")); 我从函数参数接收Accepted.Value。例如,Accepted.Value

当我需要一个变量设置一个值时,我正在尝试破译使用JObject Parse的正确语法。这是为了使用Algolia将新对象推送到我的搜索索引

songIndexHelper.PartialUpdateObject(JObject.Parse(@"{""ApprovalFL"":"true",
                        ""objectID"":"'+Accepted.Value+'"}"));
我从函数参数接收Accepted.Value。例如,Accepted.Value可以等于98。此外,true的格式应为布尔值,而不是字符串。以上是我的尝试。我应该如何修正我的语法

下面是来自Algolia的文档:

有关更多上下文,请参见函数中的上一行:

public ActionResult Index(int? Accepted, int? Denied)
{
    var accountInfo = EntityDataAccess.GetAccountInfoByUserID(User.Identity.GetUserId());
    if(accountInfo == null || accountInfo.AdminFL == false || accountInfo.LabelFL == true)
    {
        return RedirectToAction("Index", "Home");
    }
    else
    {
        if(Accepted != null)
        {
            EntityDataAccess.AcceptSong(Accepted.Value);
            var songIndexHelper = HttpContext.Application.Get("SongIndexHelper") as IndexHelper<SongAlgoliaModel>;
            songIndexHelper.PartialUpdateObject(JObject.Parse(@"{""ApprovalFL"":""true"",
                                    ""objectID"":""Accepted.Value""}"));
        }
应该是:

songIndexHelper.PartialUpdateObject(JObject.Parse(@"{""ApprovalFL"":true,
    ""objectID"":" +Accepted.Value+ "}"));
关键是使用+连接Accepted的值,而不是在引号中换行true

我建议的另一种方法是根本不使用字符串。考虑一种类似的方法:

var bob = new { ApprovalFL = true, objectID = Accepted.Value};
var obj = JObject.FromObject(bob);
songIndexHelper.PartialUpdateObject(obj);

这将产生您想要的:

String json = "{\"ApprovalFL\":true,\"objectID\":" + Accepted.Value.ToString() + "}";
即:

{"ApprovalFL":true,"objectID":98}

感谢您指示布尔值。我是否简单地将字符串变量放入JObject.Parse中我的razor语法中?回答得好@TommsoBelluzzo。
{"ApprovalFL":true,"objectID":98}