C# JObject使用变量作为值解析数据
当我需要一个变量设置一个值时,我正在尝试破译使用JObject Parse的正确语法。这是为了使用Algolia将新对象推送到我的搜索索引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
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}