【问题标题】:How to return this format this JSON into an array of strings如何将此 JSON 格式返回为字符串数组
【发布时间】:2013-06-11 15:13:38
【问题描述】:

我正在执行一个 linq 查询,它会从表中获取所有记录:

var data = _context.People.ToList(); //_context is my DataContext.

以上返回值:

{ "name": "john", "age": "30" }, { "name": "jane", "age": "31" }

但根据jsonlint,这是无效的,我需要将其返回为:

[{ "name": "john", "age": "30" }, { "name": "jane", "age": "31" }]

我该怎么做?

 viewData.xldata = [];
         $.each(data, function(i, row) {
            var strRow = JSON.stringify(row);
            viewData.xldata.push(strRow);});

使用 `JavaScriptSerializer 反序列化:

var people = jss.Deserialize<List<People>>(args["xldata"]);

【问题讨论】:

  • 您如何将List 转换为 json?
  • @BhushanFirake - 我有一个脚本,我在其中循环遍历每一行并将其字符串化。我更新了帖子。
  • 在你的代码中直接使用JSON.stringify(data);,不需要循环
  • 哦。我以为你试图在服务器端代码中生成一个 json-valid 字符串,而不是 javascript,哎呀。
  • @BhushanFirake - 我这样做了,然后将[] 放在字符串周围,但现在我收到错误消息:Type 'JsonDictionaryObject' is not supported for deserialization of an array. 在行中:` public JsonDictionaryObject(string JsonString) : base( jss.Deserialize(JsonString)) { }`

标签: c# json linq javascriptserializer


【解决方案1】:

试试这个:

    List<People> data= _context.People.ToList();

   System.Web.Script.Serialization.JavaScriptSerializer objSerializer = default(System.Web.Script.Serialization.JavaScriptSerializer);
   objSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();

    return objSerializer.Serialize(data);

【讨论】:

    猜你喜欢
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多