标签: javascriptserializer

JavaScriptSerializer.如何忽视财产

我知道ScriptIgnoreAttribute.

但是,如果我想根据标准忽略属性,该怎么办?例如,如果序列化的nullable属性为null并且不包含任何值,那么如何忽略它?

.net c# json javascriptserializer

17
推荐指数
2
解决办法
1万
查看次数

超出了JavaScriptSerializer.MaxJsonLength.处理此问题的最佳做法是什么?

我使用jQuery的$ .ajax()函数向客户端发送了大量数据.我正在ASP.NET Web服务中调用一个返回JSON数据的方法.对于大多数搜索来说,一切都很棒,但是当我有一个大型数据集要返回时,我遇到了JavaScriptSerializer MaxJsonLength属性的问题.处理此问题的最佳做法是什么?我不想随意设置最大长度.如果返回的数据大于当前最大值,或者我应该重新写入并向客户端发送数据,我可以在Web服务中设置MaxJsonLength吗?

以下是来自Web服务的相关代码段:

Dictionary<string, object> jsonValuePairs = new Dictionary<string, object>();
//add some data to the dictionary...
return System.Web.Script.Serialization.JavaScriptSerializer.Serialize(jsonValuePairs);
Run Code Online (Sandbox Code Playgroud)

asp.net json web-services javascriptserializer

15
推荐指数
3
解决办法
4万
查看次数

如何在C#中执行System.Web.Script.Serialization?

我怎样才能在C#现代UI中做到这一点?

var url = "http://ajax.googleapis.com/ajax/services/feed/load?q=http%3A%2F%2Fwww.digg.com%2Frss%2Findex.xml&v=1.0";
var wc = new WebClient();
var rawFeedData = wc.DownloadString(url);

//You can use System.Web.Script.Serialization if you don't want to use Json.NET
JavaScriptSerializer ser = new JavaScriptSerializer();
FeedApiResult foo = ser.Deserialize<FeedApiResult>(rawFeedData);

//Json.NET also return you the same strong typed object     
var apiResult = JsonConvert.DeserializeObject<FeedApiResult>(rawFeedData);
Run Code Online (Sandbox Code Playgroud)

它给我在WebClient和错误中的错误 System.Web.Script.Serialization

c# json javascriptserializer downloadstring system.web

15
推荐指数
2
解决办法
4万
查看次数

从C#.NET中的DataTable到JSON

我是C#和.NET的新手,但我已经使这段代码调用存储过程,然后我想获取返回的DataTable并将其转换为JSON.

    SqlConnection con = new SqlConnection("connection string here");
    SqlDataAdapter da = new SqlDataAdapter();
    SqlCommand cmd = new SqlCommand("getDates", con);
    SqlParameter par = new SqlParameter("@PlaceID", SqlDbType.Int);
    par.Value = 42;
    da.SelectCommand = cmd;
    cmd.Parameters.Add(par);
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();

    con.Open();

    try{
        cmd.CommandType = CommandType.StoredProcedure;
        da.Fill(ds);
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是,最好/最简单的方法是什么?一个例子会很棒,因为我还是很陌生.

.net c# datatable json javascriptserializer

14
推荐指数
4
解决办法
6万
查看次数

对继承类型的JSON反序列化

我的数据库中有一个数据表,我存储了各种设置.由于它们是任何类型(甚至是复杂的对象图),我决定将它们的值存储为序列化的JSON字符串.

让我们说我序列化了一个List<ItemBase>.序列化字符串看起来很好.但问题是列表项具有从中继承的各种类型ItemBase(对于我所关心的内容,这也可能是抽象的).

我应该使用哪个(de)序列化类/库,以便正确地反序列化我的JSON字符串以纠正对象实例.

.net json strong-typing javascriptserializer deserialization

14
推荐指数
1
解决办法
5240
查看次数

JavaScriptSerializer命名空间问题

我在尝试实现JavaScriptSerializer解析从服务器接收的JSON字符串时遇到问题.

我实现了以下代码:

responseFromServer = readStream.ReadLine();
JavaScriptSerializer ser = new JavaScriptSerializer();
var dict = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(responseFromServer);
var status = dict["notificationType"]; 
Debug.WriteLine(status);
Run Code Online (Sandbox Code Playgroud)

我补充道 using System.Web.Script.Serialization;

Visual C#2010 Express告诉我命名空间Script中不存在命名空间名称System.Web.结果JavaScriptSerializer是无效的.

我错过了使用它,还是有更好的方法来解析JSON字符串?

c# json visual-studio-2010 javascriptserializer

14
推荐指数
1
解决办法
3万
查看次数

JSON使用函数参数序列化对象

我有这个C#对象:

var obj = new {
    username = "andrey",
    callback = "function(self) { return function() {self.doSomething()} (this) }"
}
Run Code Online (Sandbox Code Playgroud)

我需要JSON序列化它以在ajax调用中传递给浏览器.我使用JavascriptSerializer,但它序列化为以下JSON:

{"username":"andrey", "callback": "function(self) { return function() {self.doSomething()} (this) }"}
Run Code Online (Sandbox Code Playgroud)

但我需要的是:

{"username":"andrey", "callback": function(self) { return function() {self.doSomething()} (this) }}
Run Code Online (Sandbox Code Playgroud)
  • 函数定义没有引号.

现在,当JSON对象到达浏览器并创建时,'callback'参数不是函数而是字符串.任何想法如何解决它,最好是在服务器端?

c# ajax json javascriptserializer

13
推荐指数
2
解决办法
9648
查看次数

JavaScriptSerializer UTC DateTime问题

我们的客户希望在浏览器中显示日期和时间值,就像它们在数据库中一样,我们将它们作为UTC存储在数据库中.

起初我们在序列化和Javascript方面遇到了一些问题.DateTime值被移动了两次 - 首先匹配机器的本地时区,然后匹配浏览器中的时区.我们通过向JavaScriptSerializer添加自定义转换器来修复它.我们在Serialize覆盖中将DateTime标记为DateTimeKind.Utc.从Serialize中提取数据有点困难,但是我们发现了一些Uri hack,这有助于在相同的JavaScriptSerializer/Date(286769410010)/格式中返回DateTime值,但没有转移到本地时间.在Javascript方面,我们修补了KendoUI JS库来偏移构造的Date()对象,使它们看起来好像是UTC.

然后我们开始在另一方面工作,反序列化.同样,我们必须调整我们的代码以使用自定义stringify而不是JSON.stringify,这会在从本地时间转换为UTC时再次抵消数据.到目前为止,一切似乎都很好.

但看看这个测试:

    public void DeserialiseDatesTest()
    {
        var dateExpected = new DateTime(1979, 2, 2,
            2, 10, 10, 10, DateTimeKind.Utc);

        // this how the Dates look like after serializing
        // anothe issue, unrelated to the core problem, is that the "\" might get stripped out when dates come back from the browser
        // so I have to add missing "\" or else Deserialize will break
        string s = "\"\\/Date(286769410010)\\/\"";

        // this get deserialized to UTC date …
Run Code Online (Sandbox Code Playgroud)

.net datetime utc javascriptserializer

13
推荐指数
1
解决办法
2万
查看次数

如何从3.5 asmx Web服务获取JSON响应

我有以下方法:

using System.Web.Services;
using System.Web.Script.Services;
using System.Web.Script.Serialization;
using Newtonsoft.Json;
using System.Collections;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]

// [System.Web.Script.Services.ScriptService]
public class Tripadvisor : System.Web.Services.WebService {

    public Tripadvisor () {

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }


    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string HotelAvailability(string api)
    {
        JavaScriptSerializer js = new JavaScriptSerializer();
        string json = js.Serialize(api);
        //JsonConvert.SerializeObject(api);
        return json ;
    }
Run Code Online (Sandbox Code Playgroud)

在这里我设置ResponseFormat属性是json仍然作为XML返回.

我想用json格式使用这个asmx服务有什么想法吗?

c# asp.net json asmx javascriptserializer

13
推荐指数
1
解决办法
5万
查看次数

ASP.NET WebService使用XML标记包装我的JSON响应

我不确定我错过了什么,我错过了什么.

我正在构建一个ASP.NET 2.0(在.Net 3.5框架上)Web应用程序,我正在包含一个Web服务.请注意,这不是 MVC项目.我希望公开一个返回JSON字符串的方法; 格式化以提供jqGrid jQuery插件.

这是我在我的服务中实现的初步测试方法:感谢(Phil Haack的MVC指南)

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string getData()
{
    JavaScriptSerializer ser = new JavaScriptSerializer();

    var jsonData = new
    {
        total = 1, // we'll implement later 
        page = 1,
        records = 3, // implement later 
        rows = new[]{
          new {id = 1, cell = new[] {"1", "-7", "Is this a good question?", "yay"}},
          new {id = 2, cell = new[] {"2", "15", "Is this a blatant ripoff?", "yay"}},
          new …
Run Code Online (Sandbox Code Playgroud)

c# asp.net json web-services javascriptserializer

12
推荐指数
2
解决办法
4万
查看次数