GVKun编程网logo

JSON.stringify,更改键的大小写(json大小写适配)

12

在本文中,我们将带你了解JSON.stringify,更改键的大小写在这篇文章中,我们将为您详细介绍JSON.stringify,更改键的大小写的方方面面,并解答json大小写适配常见的疑惑,同时我们

在本文中,我们将带你了解JSON.stringify,更改键的大小写在这篇文章中,我们将为您详细介绍JSON.stringify,更改键的大小写的方方面面,并解答json大小写适配常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的JS - JSON.stringify、JSON Stringify由于UTC更改了日期时间、JSON Stringify由于UTC更改日期时间、JSON.parse 和 JSON.stringify

本文目录一览:

JSON.stringify,更改键的大小写(json大小写适配)

JSON.stringify,更改键的大小写(json大小写适配)

我正在使用一个返回json的Web服务,并将json存储在本地变量中。json代表一个简单的业务对象,例如:

var entry = {  "FirstName": "John",  "LastName": "Doe",  ....};

大小写是这样的,因为按照我们的命名约定,它与.net类的属性名称匹配。

当更改其中一些属性并传递回json时,Web服务现在期望使用驼峰式(再次,按照我们对方法参数的命名约定),而不是最初返回的pascal式。

var entry = {  "firstName": "John",  "lastName": "Doe",  ....};

这当然是行不通的。

JSON.stringify用来将json作为字符串发送回Web服务,并且正在寻找是否有一种简便的方法可以将密钥更改为驼峰式大小写。但是,看来我只能使用replacer参数来使用该值。

我可以更改类的序列化,但请假装这不是一个选择。有任何想法吗?

谢谢。

答案1

小编典典

您可以在写入之前使用JSON替换器来切换密钥。

JSON.stringify(myVal, function (key, value) {  if (value && typeof value === ''object'') {    var replacement = {};    for (var k in value) {      if (Object.hasOwnProperty.call(value, k)) {        replacement[k && k.charAt(0).toLowerCase() + k.substring(1)] = value[k];      }    }    return replacement;  }  return value;});

相反,您可以使用JSON Reviver。

JSON.parse(text, function (key, value) {    if (value && typeof value === ''object'')      for (var k in value) {        if (/^[A-Z]/.test(k) && Object.hasOwnProperty.call(value, k)) {          value[k.charAt(0).toLowerCase() + k.substring(1)] = value[k];          delete value[k];        }      }      return value;    });

第二个可选参数是一个函数,将使用在解析过程中创建的每个值或将要写入的每个值来调用该函数。这些实现只对键进行迭代,并将所有具有大写字母的字母的首字母小写。

在http://json.org/js.html上有关于替换者和复兴者的文档:

可选的reviver参数是一个函数,它将为最终结果的每个级别的每个键和值调用。每个值都将由reviver函数的结果替换。这可用于将通用对象重新构造为伪类的实例,或将日期字符串转换为Date对象。

字符串化器方法可以采用可选的替换函数。将在结构中的每个值的toJSON方法(如果有)之后调用它。将把每个键和值作为参数传递给它,并将其绑定到持有键的对象。返回的值将被字符串化。

JS - JSON.stringify

JS - JSON.stringify

以上就是JS - JSON.stringify的详细内容,更多请关注php中文网其它相关文章!

JSON Stringify由于UTC更改了日期时间

JSON Stringify由于UTC更改了日期时间

由于我所在的位置,我在JavaScript中的日期对象始终由UTC +2表示。因此像这样

Mon Sep 28 10:00:00 UTC+0200 2009

问题是JSON.stringify将上述日期转换为

2009-09-28T08:00:00Z  (notice 2 hours missing i.e. 8 instead of 10)

我需要的是兑现日期和时间,但是没有兑现,因此应该

2009-09-28T10:00:00Z  (this is how it should be)

基本上我用这个:

var jsonData = JSON.stringify(jsonObject);

我尝试传递替换参数(stringify上的第二个参数),但问题是该值已被处理。

我也尝试在date对象上使用toString()and toUTCString(),但是这些也不能给我我想要的东西。

谁能帮我?

答案1

小编典典

最近,我遇到了同样的问题。并使用以下代码解决了该问题:

x = new Date();let hoursDiff = x.getHours() - x.getTimezoneOffset() / 60;let minutesDiff = (x.getHours() - x.getTimezoneOffset()) % 60;x.setHours(hoursDiff);x.setMinutes(minutesDiff);

JSON Stringify由于UTC更改日期时间

JSON Stringify由于UTC更改日期时间

由于我所在的位置,我在JavaScript中的日期对象始终由UTC +2表示。因此像这样

Mon Sep 28 10:00:00 UTC+0200 2009

问题是JSON.stringify将上述日期转换为

2009-09-28T08:00:00Z  (notice 2 hours missing i.e. 8 instead of 10)

我需要的是兑现日期和时间,但是没有兑现,因此应该

2009-09-28T10:00:00Z  (this is how it should be)

基本上我用这个:

var jsonData = JSON.stringify(jsonObject);

我尝试传递替换参数(stringify上的第二个参数),但问题是该值已被处理。

我也尝试在date对象上使用toString()and toUTCString(),但是这些也不能给我我想要的东西。

谁能帮我?

JSON.parse 和 JSON.stringify

JSON.parse 和 JSON.stringify

转载自:http://blog.csdn.net/wangxiaohu__/article/details/7254598

parse用于从一个字符串中解析出json对象,如

var str = '{"name":"huangxiaojian","age":"23"}'

结果:

JSON.parse(str)

Object
  • age:"23"
  • name:"huangxiaojian"
  • __proto__:Object

  • 注意:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。


    stringify()用于从一个对象解析出字符串,如

    var a = {a:1,b:2}

    JSON.stringify(a)

    "{"a":1,"b":2}"

    我们今天的关于JSON.stringify,更改键的大小写json大小写适配的分享已经告一段落,感谢您的关注,如果您想了解更多关于JS - JSON.stringify、JSON Stringify由于UTC更改了日期时间、JSON Stringify由于UTC更改日期时间、JSON.parse 和 JSON.stringify的相关信息,请在本站查询。

    本文标签: