当我需要一个由变量设置的值时,我试图破译使用JObject Parse的正确语法。这是为了使用Algolia将新对象推送到我的搜索索引。
songIndexHelper.PartialUpdateObject(JObject.Parse(@"{""ApprovalFL"":"true",
""objectID"":"'+Accepted.Value+'"}"));
我从函数参数中收到Accepted.Value
。例如,Accepted.Value可能等于98.此外,true
应格式化为布尔值而不是字符串。以上是我的尝试。我该如何修复语法?
我遵循Algolia的这份文件:https://www.algolia.com/doc/api-reference/api-methods/partial-update-objects/
有关更多上下文,以下是函数中的上述行:
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""}"));
}
答案 0 :(得分:1)
这应该产生你想要的东西:
String json = "{\"ApprovalFL\":true,\"objectID\":" + Accepted.Value.ToString() + "}";
是:
{"ApprovalFL":true,"objectID":98}
答案 1 :(得分:0)
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);