2016-12-26 96 views
0

我正在做一个ajax调用来检索从查询返回的JSON数据。我的JSON是返回以下(准确):修改从C#AJAX返回的JSON数据调用

[{ 
    "label": "", 
    "value": "2302" 
}, { 
    "label": "9 - Contract set-up in EPICOR", 
    "value": "2280" 
}, { 
    "label": "2 - Verify PO received", 
    "value": "2279" 
}, { 
    "label": "7 - Review quote and prepare team for meeting", 
    "value": "2281" 
}] 

但我需要它实际上将返回:

{ 
    "options": { 
     "logan_dvprTasks.taskID": { 
      [{ 
       "label": "", 
       "value": "2302" 
      }, { 
       "label": "9 - Contract set-up in EPICOR", 
       "value":"2280" 
      }, { 
       "label": "2 - Verify PO received", 
       "value":"2279" 
      }, { 
       "label": "7 - Review quote and prepare team for meeting", 
       "value":"2281" 
      }] 
     } 
    } 

我已经生成了JSON的代码是:

public IEnumerable<updatetasks> GetAllItems(string dvprid) 
{ 
    string stringSQL = "sqlStatement goes here"; 

    string connString = ConfigurationManager.ConnectionStrings["loganWebConn"] 
              .ConnectionString; 

    using (SqlConnection sqlConnection = new SqlConnection(connString)) 
    { 
     sqlConnection.Open(); 

     using (SqlCommand cmd = sqlConnection.CreateCommand()) 
     { 
      cmd.CommandText = stringSQL; 
      cmd.CommandType = CommandType.Text; 

      using (SqlDataReader reader = cmd.ExecuteReader()) 
      { 
       while (reader.Read()) 
       { 
        var updatetasks = new updatetasks(); 
        updatetasks.label = reader["taskName"].ToString(); 
        updatetasks.value = reader["taskID"].ToString(); 
        yield return updatetasks; 
       } 
      } 
     } 
    } 
}  

如何我可以修改我的C#代码以在JSON对象的开始处添加这两个项目吗?

+0

我更好的格式化您的代码,尤其是JSON来帮助说明您需要创建结构。 – krillgar

回答

1

通过返回所需的对象来代替。

将您的ajax调用更改为此方法并将其返回。

public object MyCall(string dvprid) 
{ 
    return new 
    { 
     options = new 
     { 
      logan_dvprTasks = GetAllItems(dvprid) 
     }; 
    }; 
} 

记住.(点)是不是在C#标识符有效,所以我叫你logan_dvprTasks.taskID简单logan_dvprTasks

如果你的意思是taskID是的logan_dvprTasks的属性,所产生的JSON将

{"options":{"logan_dvprTasks":{"taskID":[...]}}} 
+0

我认为你的关于'taskID'属性的附录是正确的,因为我相当肯定没有属性名称只是一个数组的对象不是有效的JSON。你昨晚的节目格式正确。 – krillgar

+1

是的,我相信他的示例代码在'{“options”:{“logan_dvprTasks.taskID”:{[...]}}'上有一个额外的'{'',因为它以两个'}'而不是三个关闭。我的回答就好像它是'{“options”:{“logan_dvprTasks.taskID”:[...]}}',但纠正了'.taskID'部分,这是无效的C# – rabelloo