일부 트위터 데이터를 반환하려고하는데 작업을 완료 할 수 없습니다. 나는 위의 코드를 실행하면System.Json.JsonObject 유형에 사용할 기본 생성자를 찾을 수 없습니다.
using System.Collections.Generic;
using System.Json;
using System.Linq;
using System.Net.Http;
using System.Web.Mvc;
using Demo.Models;
namespace Demo.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new List<Tweets>();
var client = new HttpClient();
var task =
client.GetAsync("http://search.twitter.com/search.json?q=dave").ContinueWith((taskWithMessage) =>
{
var response = taskWithMessage.Result;
var jsonTask = response.Content.ReadAsAsync<JsonObject>();
jsonTask.Wait(); //THIS IS WHERE THE FAULT IS
var jsonObject = jsonTask.Result;
model.AddRange(
(from JsonObject jo in jsonObject["results"]
select new Tweets
{
Name = jo["from_user"].ToString(),
Text = jo["text"].ToString()
}
));
});
task.Wait();
return View(model);
}
}
}
, 그것은 오류 메시지 내가 가진
유형에 사용할 기본 생성자를 찾을 수 없습니다 System.Json.JsonObject
실패 .NET 4 및 4.5를 사용하여 동일한 오류 메시지가 발생했습니다.
내가 수행해야 할 작업을 설명 할 수 있습니까?
이의 나머지 된 JSONObject는 기본 생성자가 있기 때문입니다 전체 스택 추적을
[JsonSerializationException: Unable to find a default constructor to use for type System.Json.JsonObject. Path 'completed_in', line 1, position 16.]
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewDictionary(JsonReader reader, JsonDictionaryContract contract) +234
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) +810
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) +184
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) +793
Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) +1143
Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType) +46
System.Net.Http.Formatting.<>c_DisplayClass8.b_6() +950 System.Threading.Tasks.TaskHelpers.RunSynchronously(Func`1 func, CancellationToken cancellationToken) +143
[AggregateException: One or more errors occurred.]
System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) +3548265
System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) +10487717
System.Threading.Tasks.Task.Wait() +10
Demo.Controllers.<>c_DisplayClass3.b_1(Task1 taskWithMessage) in c:\Users\Dave\Documents\Visual Studio 2012\Projects\Demo\Demo\Controllers\HomeController.cs:22
System.Threading.Tasks.ContinuationTaskFromResultTask1.InnerInvoke() +80 System.Threading.Tasks.Task.Execute() +49
[AggregateException: One or more errors occurred.]
System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) +3548265
System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) +10487717
System.Threading.Tasks.Task.Wait() +10
Demo.Controllers.HomeController.Index() in c:\Users\Dave\Documents\Visual Studio 2012\Projects\Demo\Demo\Controllers\HomeController.cs:35
lambda_method(Closure , ControllerBase , Object[]) +101
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary2 parameters) +211
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 parameters) +27
System.Web.Mvc.Async.<>c_DisplayClass42.b_41() +28 System.Web.Mvc.Async.<>c_DisplayClass81.<BeginSynchronous>b__7(IAsyncResult _) +10 System.Web.Mvc.Async.WrappedAsyncResult1.End() +57 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +48
System.Web.Mvc.Async.<>c_DisplayClass39.b_33() +57 System.Web.Mvc.Async.<>c_DisplayClass4f.b_49() +223 System.Web.Mvc.Async.<>c_DisplayClass37.b_36(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResult1.End() +57 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +48
System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20() +24 System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +102 System.Web.Mvc.Async.WrappedAsyncResult1.End() +57 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +43
System.Web.Mvc.<>c_DisplayClass1d.b_18(IAsyncResult asyncResult) +14
System.Web.Mvc.Async.<>c_DisplayClass4.b_3(IAsyncResult ar) +23 System.Web.Mvc.Async.WrappedAsyncResult1.End() +62
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +57 System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23 System.Web.Mvc.Async.WrappedAsyncResult1.End() +62
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +47 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
System.Web.Mvc.<>c_DisplayClass8.b_3(IAsyncResult asyncResult) +25
System.Web.Mvc.Async.<>c_DisplayClass4.b__3(IAsyncResult ar) +23 System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +47 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9629708 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
'JsonObject'는 (는) 당신이 만든 클래스입니까? –
아니요, System.Json의 일부입니다. – Dave