我有以下对象图,我使用Jquery的$ .Ajax()将这个相同的"View"对象以JSON(字符串化)从浏览器发送到ASP.Net上的Page方法.JAvascript反序列化适用于View类中的所有字符串和int,但My List<DataItem>为空.
我尝试过:使用chrome dev工具,我使用了字符串化的JSON,创建了一个单元测试并使用了DataContractJsonSerializer和JavaScriptSerializer.该DataContractJsonSerializer对象正确地反序列化了我的对象图,但JavaScriptSerializer转储了我的列表.如何在页面方法上获得正确的反序列化?
public class View
{
public string Text { get; set; }
public string AnotherText { get; set; }
public Int SomeInt { get; set; }
public List<DataItem> { get; set; }
}
public class DataItem
{
public Person person {get;set}
}
public class Person
{
public int Age {get;set}
}
var dataa = {mqvm: mqvmJSON };
$.ajax({
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify( …Run Code Online (Sandbox Code Playgroud) 我有一个帮助函数创建一个Array_Refobj.该函数有一个参数,vector<t>- 编译器正在抱怨.我正在使用VS2010.
.h.Array_Ref.h.cpp文件中.typename在front of vector<T>typedef typename前面vector<T>似乎没什么用.
#include <vector>
template<class T>
Array_Ref<T> make_ref(vector<T> &v, int s)
{
return (v.size()) ? Array_Ref<T>(v,s): Array_Ref<T>(0,0);
}
Run Code Online (Sandbox Code Playgroud)
我越来越:
error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed.
error C2988: unrecognizable template declaration/definition
error C2059: syntax error : '<'
Run Code Online (Sandbox Code Playgroud)
但是,将它放在相同的头文件中Array_Ref.h工作正常:
template<class T,int size>
Array_Ref<T> make_ref(T (&p)[size]) …Run Code Online (Sandbox Code Playgroud)