解析数据库 - 将表中的信息保存为json

时间:2013-11-18 13:12:41

标签: c# json parse-platform

我正在使用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; }
}

保存此代码并保存在数据库中但未保存该项目时,不会抛出任何错误。

2 个答案:

答案 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();

一旦这样做,测试增量变化,直到找到出错的地方。