错误asp.net转换JSON到.NET对象

编程入门 行业动态 更新时间:2024-10-28 14:31:44
本文介绍了错误asp转换JSON到.NET对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我无法转换成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对象

本文发布于:2023-11-24 22:31:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1627136.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:对象   错误   asp   net   JSON

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!