我必须使用facebook c#sdk作为.net 3.5中的新项目,我知道最新版本有4个示例 - 但它也是针对3.5编译的,因此完全可以正常工作.
无论如何,如果我非常愚蠢,请原谅我.但我正在寻找将json对象转换为我的模型,我可以这样做吗?
public ActionResult About()
{
var app = new FacebookApp();
JsonObject friends = (JsonObject)app.Get("me/friends");
ViewData["Albums"] = new Friends((string)friends.ToString());
return View();
}
public class Friends
{
public string name { get; set; }
public string id { get; set; }
public Friends(string json)
{
JArray jObject = JArray.Parse(json);
JToken jData = jObject["data"];
name = (string)jData["name"];
id = (string)jData["id"];
}
}
Run Code Online (Sandbox Code Playgroud)
这是使用Json.Net.显然这不起作用,我得到的错误是
从JsonReader读取JArray时出错.当前的JsonReader项不是数组:StartObject
我很确定我的方法完全是错误的 - 所以如果有人能提供任何提示,我会非常感激.
谁能告诉我如何反序列化包含多个属性的对象?
鉴于下面的场景,代码工作正常.
public ActionResult Index()
{
string json = @"{""name"": ""Person 2"",""email"": ""example@example.com""}";
var emp = JsonConvert.DeserializeObject<Person>(json);
Response.Write(emp.name + emp.email);
return View();
}
public class Person
{
public string name { get; set; }
public string email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
但是如果数组包含多个项目,我该怎么办呢?
string json = @"{""data"": [{""name"": ""Person 1"",""email"": ""test@test.com""},{""name"": ""Person 2"",""email"": ""example@example.com""}]}";
Run Code Online (Sandbox Code Playgroud)
提前致谢
下面给出的答案对于我提出的问题是完美的,但现在我已经领先一步了.任何人都可以告诉我如果json有一个数组,我需要做什么,例如添加一个地址?
{
"data": [
{
"name": "Person 1",
"email": "test@test.com",
"address": {
"address1": "my address 1",
"address2": "my address 2"
}
},
{
"name": "Person …Run Code Online (Sandbox Code Playgroud) 任何人都可以指出我如何在MVC应用程序中使用Facebook C#SDK的表单帖子?这是一个基于iframe的Canvas应用程序.
我有以下代码
[HttpPost, CanvasAuthorize(Permissions = "publish_stream")]
public ActionResult Enter(FormCollection col)
{
var fbApp = new FacebookClient(this.CurrentSession.AccessToken);
JsonObject result = (JsonObject)fbApp.Get("me");
long FacebookId = long.Parse(result["id"].ToString());
//CODE TO INSERT GOES HERE
return View();
}
Run Code Online (Sandbox Code Playgroud)
形式就是这样
<form action="/EnterComp/Enter" enctype="multipart/form-data" method="post">
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<label for="Text">Text</label>
</div>
<div class="editor-field">
<input id="Text" name="Text" type="text" value="" />
</div>
<div class="editor-label">
<label for="ImagePath">ImagePath</label>
</div>
<div class="editor-field">
<input type="file" name="ImagePath" id="ImagePath">
</div>
<div class="editor-label">
<label for="VideoPath">VideoPath</label>
</div>
<div class="editor-field">
<input type="file" name="VideoPath" id="VideoPath">
</div>
<p>
<input …Run Code Online (Sandbox Code Playgroud)