2015-11-28 5 views
1

У меня есть один файл JSON в моем локальном пути sendmail.json она содержит данные, как этотдесериализации в MVC

{ 
"from": { 
    "datatype": "String", 
    "required": false 
}, 
"subject": { 
    "datatype": "String", 
    "required": false 
}, 
"text": { 
    "datatype": "String", 
    "required": false 
}, 
"to": { 
    "datatype": "String", 
    "required": false 
} 

}

я десериализации эти данные в MVC и я хочу передайте эти данные в .js угловой контроллер, пожалуйста, укажите способ его выполнения.

+0

Вы можете поделиться тем, что вы уже пробовали до сих пор , Также проверьте свою грамматику и пунктуации во время публикации. –

ответ

1

Если вы хотите десериализовать JSON и отправить его на клиентскую сторону, вы можете сделать это так.

[HttpGet] 
public ActionResult mailData() 
{ 
    List<test> myDeserializedObjList = (List<test>)Newtonsoft.Json.JsonConvert.DeserializeObject(Request["jsonString"], typeof(List<test>)); 
    return Json(jsonString, JsonRequestBehavior.AllowGet); 
} 

Надеюсь, что это сработает для вас ..!

+0

Что такое тест, как написать тестовый класс? –

+0

test - это модель, которую вы можете сделать из своих json-данных и использовать ее в списке , если вы хотите сделать модель ваших данных json попробовать. http://json2csharp.com/ –

+0

он работает для меня спасибо –

0

Не нужно десериализовать JSON в объект, а затем сериализовать объект в JSON, чтобы отправить его в браузер.

Почему бы не просто отправить JSON-файл в браузер?

public class MailController : Controller 
{ 
    // GET: Mail 
    public ActionResult Schema() 
    { 
     return File(this.Server.MapPath("~/App_Data/sendmail.json"), "application/json"); 
    } 
} 

EDIT:

Во всяком случае здесь у вас есть то, что вы просили:

public class MailController : Controller 
{ 
    // GET: Mail 
    public ActionResult Schema() 
    { 
     using (var reader = new StreamReader(this.Server.MapPath("~/App_Data/sendmail.json"))) 
     { 
      var json = reader.ReadToEnd(); 
      var data = JsonConvert.DeserializeObject<Dictionary<string, PropertyDefinition>>(json); 
      return this.Json(data, JsonRequestBehavior.AllowGet); 
     } 
    } 
} 

public class PropertyDefinition 
{ 
    public string datatype; 
    public bool required; 
} 

Необходимо Newtonsoft.JSON NuGet пакет

+0

Почему этот ответ имеет нижний предел? –

Смежные вопросы