我无法转换成JSON字符串.NET对象在asp中。我使用隐藏域(通过隐藏字段保持JSON object.Tostring()和读取隐藏文件code中的隐藏字段的值)发送JSON字符串从客户端到服务器
I am unable to convert JSON string to object in asp. I am sending JSON string from client to server using hidden field (by keeping the JSON object.Tostring() in hidden field and reading the hidden field value in code behind file)
JSON字符串/对象:
[[{"OfferId":"1","OrderValue":"11","HostingTypeID":"3"}, {"OfferId":"1","OrderValue":"11","HostingTypeID":"3"}, {"OfferId":"1","OrderValue":"11","HostingTypeID":"3"}, {"OfferId":"1","OrderValue":"2","HostingTypeID":"3"}, {"OfferId":"1","OrderValue":"2","HostingTypeID":"3"}, {"OfferId":"1","OrderValue":"67","HostingTypeID":"3"}, {"OfferId":"1","OrderValue":"67","HostingTypeID":"3"}], [{"OfferId":"1","OrderValue":"99","HostingTypeID":"6"}], [{"OfferId":"1","OrderValue":"10","HostingTypeID":"8"}]].NET对象
public class JsonFeaturedOffer { public string OfferId { get; set; } public string OrderValue { get; set; } public string HostingTypeID { get; set; } }Converstion code在code隐藏文件
Converstion code in code behind file
byte[] byteArray = Encoding.ASCII.GetBytes(HdnJsonData.Value); MemoryStream stream = new MemoryStream(byteArray); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(JsonFeaturedOffer)); object result= serializer.ReadObject(stream); JsonFeaturedOffer jsonObj = result as JsonFeaturedOffer;虽然转换我收到以下错误:
While converting i am getting following error:
元素期望从命名空间'根'''..遇到无名为'',命名空间'。
Expecting element 'root' from namespace ''.. Encountered 'None' with name '', namespace ''.
推荐答案而不是这样做的手工,我建议使用内置轻便JavaScriptSerializer. 否属性要求您要序列化类/反序列化。
Instead of doing this manually I would recommend using the built in lightweight JavaScriptSerializer. No attributes are required on the classes you want to serialize/deserialize.
这也是更多的灵活,更快捷比DataContractJsonSerializer,因为它不必在意所有的WCF的东西。此外,它拥有的通用重载,使得使用它很简单,它也可以处理的匿名类型
It's also more flexible and faster than the DataContractJsonSerializer, since it does not have to care about all the wcf stuff. Additionally it has generic overloads that make it very simple to use AND it can also handle anonymous types.
连载:
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); var objectAsJsonString = serializer.Serialize(objectToSerialize);反序列化:
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); JsonFeaturedOffer deserializedObject = serializer.Deserialize<JsonFeaturedOffer>(s_JsonBaseDate);要使其更容易,你可以创建扩展方法,这将使你JSON序列化/反序列化,直接在对象上/串。
To make it even easier you can create Extension methods that will give you json serialization/deserialization directly on the objects/strings.
更多推荐
错误asp.net转换JSON到.NET对象
发布评论