我正在使用ASP.NET MVC 4和Parse数据库(https://www.parse.com/)。我有一个名为 app 的表格和一个名为评论的字段。在此字段中,我想使用以下格式保存json对象:
[{"Title":"a title", "url":"a url"}, {"Title":"another title", "url":"another url"}, etc...]
正如我在文档中所读到的那样(https://www.parse.com/docs/dotnet_guide#objects-types)Parse支持实现IDictionary<string, T>
和IList<T>
的对象,所以我有以下代码:
var requestFormInformation = new ParseObject("app");
requestFormInformation["Reviews"] = requestForm.Reviews.ToList();
评论属性为IEnumerable<Review>
,这是评论类
public class Review
{
public string Title { get; set; }
public string Url { get; set; }
}
保存此代码并保存在数据库中但未保存该项目时,不会抛出任何错误。
答案 0 :(得分:0)
您可能希望将代码放入try-catch(ParseException)以查看保存是否因某种原因失败。
旁注:Parse帮助页面建议您使用大写字符启动类名,并使用小写字符启动键名。 “app”应该是“App”,“Reviews”应该是“评论”。
另一件事可能是身份验证或授权。您是否经过适当的身份验证,并且您是否有权保存此对象。
答案 1 :(得分:0)
您需要明确自己如何保存数据。你说你想把它保存为JSON,这是一个字符串序列化格式,所以列应该是string类型,你必须自己处理JSON序列化/反序列化。我不认为这是你真正想要的,所以忘记JSON,因为这是Parse内部的一个实现细节。
如果您希望它只是序列化您的收藏品,您不必做任何特别的事情。根据{{3}},您可以存储任何实现IList或IDictionary的内容,包括嵌套对象。
我建议您尝试使用List作为其属性之一的简单类进行实验:
var foo = new ParseObject("Foo");
var reviews = new List<Review>();
reviews.Add(new Review { Title = "Review 1" });
reviews.Add(new Review { Title = "Review 2" });
foo["reviews"] = reviews;
await foo.SaveAsync();
一旦这样做,测试增量变化,直到找到出错的地方。