我从那个看起来像这样的服务器的JSON响应:

{

"Response": {

"FirstName": "John",

"LastName": "Smith",

"NickNames": {

"NameOne": "Johnny",

"NameTwo": "JohnS",

"NameThree": "Smithy"

},

"Success": true,

"Errors": []

}

}

有没有一种方法,我可以运行通过函数这个反应,使每个键值对的关键将驼峰格式?

因此,输出将类似于:

{

"response": {

"firstName": "John",

"lastName": "Smith",

"nickNames": {

"nameOne": "Johnny",

"nameTwo": "JohnS",

"nameThree": "Smithy"

},

"success": true,

"errors": []

}

}

如果有人能在正确的方向指向我,那简直太好了。

谢谢。

Answer 1:

你会为JSON.parse将值赋给新的属性被套管下一个齐磊功能。

function toCamelCase(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;

}

var parsed = JSON.parse(myjson, toCamelCase);

它是如何工作的更多信息在这个苏答案 。

Answer 2:

用户“@i恨懒惰”提出这一方法 - 使用“齐磊”功能是 - 正确的。 然而,他的功能并没有为我工作。

也许是因为我解析JSON数组。 另外我使用ReSharper的 ,它抱怨一个代码味道:)(“并非所有的代码路径返回值”)。 所以,我结束了使用功能,从另一个SO问题,这确实为我工作:

function camelCaseReviver(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;

}

Answer 3:

这里是一个功能性递归(ES6)的方法。

function convertKeysToCamelCase(o) {

if (o === null || o === undefined) {

return o;

} else if (Array.isArray(o)) {

return o.map(convertKeysToCamelCase);

}

return typeof o !== 'object' ? o : Object.keys(o).reduce((prev, current) => {

const newKey = `${current[0].toLowerCase()}${current.slice(1)}`;

if (typeof o[current] === 'object') {

prev[newKey] = convertKeysToCamelCase(o[current]);

} else {

prev[newKey] = o[current];

}

return prev;

}, {});

}

// successfully tested input

const o = {

SomeNum: 1,

SomeStr: 'a',

SomeNull: null,

SomeUndefined: undefined,

SomeBoolean: true,

SomeNaN: NaN,

NestedObject: {

SomeSentence: 'A is for apple',

AnotherNested: {

B: 'is for blahblah'

}

},

NumArray: [1, 2, 3, 4],

StringArray: ['a', 'b', 'c'],

BooleanArray: [true, false],

ArrayOfArrays: [[1,2,], ['a','b']],

ObjectArray: [{Foo:'bar'}, {Hello:'world', Nested:{In:'deep'}}],

MixedArray: [1,'a', true, null, undefined, NaN, [{Foo:'bar'}, 'wat']]

}

const output = convertKeysToCamelCase(o);

console.log(output.mixedArray[6][0].foo); // 'bar'

Answer 4:

@adamjyee您的解决方案的工作,除了整数嵌套数组。 一个小的修复可能是:

function convertKeysToCamelCase (o) {

if (o === null) {

return null

} else if (o === undefined) {

return undefined

} else if (typeof o === 'number') {

return o

} else if (Array.isArray(o)) {

return o.map(convertKeysToCamelCase)

}

return Object.keys(o).reduce((prev, current) => {

const newKey = `${current[0].toLowerCase()}${current.slice(1)}`

if (typeof o[current] === 'object') {

prev[newKey] = convertKeysToCamelCase(o[current])

} else {

prev[newKey] = o[current]

}

return prev

}, {})

[右置评,但缺乏评论特权:(]

Answer 5:

你需要写遍历树,并返回其中的对象键已经更新了新的树递归函数。 递归函数会叫自己来解决它遇到的任何子对象。

文章来源: formatting json data to be camelCased

android json 驼峰,格式化JSON数据被驼峰格式(formatting json data to be camelCas相关推荐

  1. java学习笔记——springmvc 之 数据自定义转换器 数据格式化 JSR303数据校验返回与接收JSON(@RequestBody 和 @ResponseBody)

    九.数据绑定流程分析 1.提出问题 日期字符串格式的表单参数,提交后转换为Date类型 <!--    解决问题: 1.数据类型转换 2.数据格式 3.数据校验 --> BirthDay ...

  2. xml的数据交换以及xml和json数据交换的比较

    一.什么是Web Service ? Web Services 是有企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过internet来访问并使用这项在线服务 WebServicc ...

  3. 读json文件并修改数据

    读json文件并修改数据 <html><head><title>读json文件并修改数据</title><meta charset='utf-8' ...

  4. 用ajax提交数据到ashx用JSON.stringify格式化参数后在服务器端取不到值?[转载至:http://q.cnblogs.com/q/34266/]...

    用ajax提交数据到ashx用JSON.stringify格式化参数后在服务器端取不到值?[转载至:http://q.cnblogs.com/q/34266/] 前台代码: $(function () ...

  5. php音频转换接口,PHP实现chrome表单请求数据转换为接口使用的json数据

    为什么要写转换程序 最近在做旧版程序迁移,旧的架构为常规的MVC模式,新版架构全部改成restful架构. 由于改版数据是一致的,但是请求结构不一致,新版的请求全部以json形式提交,为了方便测试,之 ...

  6. json日期格式化 java_java_Java Web程序中利用Spring框架返回JSON格式的日期,返回Json时格式化日期Date 第一 - phpStudy...

    Java Web程序中利用Spring框架返回JSON格式的日期 返回Json时格式化日期Date第一步:创建CustomObjectMapper类 /** * 解决SpringMVC使用@Respo ...

  7. mysql json 函数_MYSQL 开发设计表是硬邦邦的VARHCAR 还是JSON TYPE 来处理数据更香

    开发在使用MySQL中,建立比较大的VARCHAR字段来存储SQL执行的语句或者利用MYSQL 来存储什么VARCHAR(1000) VARCHAR(2000) 之类的事情比比皆是,实际上存储超高的字 ...

  8. 【Groovy】json 序列化 ( 类对象转为 json 字符串 | 使用 JsonBuilder 进行转换 | 使用 JsonOutput 进行转换 | 将 json 字符串格式化输出 )

    文章目录 一.Groovy 对象转为 json 字符串 ( 使用 JsonBuilder 进行转换 ) 二.使用 JsonOutput 将指定类型对象转为 json 字符串 三.将 json 字符串格 ...

  9. json 转对象函数_JSON_QUERY()函数从JSON数据提取对象

    json 转对象函数 In this article, we will explore JSON_QUERY() functions in SQL Server to extract JSON obj ...

最新文章

  1. 体验使用node.js创建vue+Element-UI项目
  2. 简单型的弱电机房工程汇报方案
  3. AreYouBusy
  4. Kmplayer播放器 绿色免安装版 2016 中文版
  5. ServiceStack学习之一准备工作
  6. VSTO项目的MSB3482错误
  7. 买书动态规划java_《编程之美》买书问题——动态规划
  8. 修改双系统启动的名称
  9. 台达plc ec3程序下载通讯设置_【台达PLC】入门这样学!基础详解!
  10. 如何访问云服务器的共享文件,怎么访问云服务器的共享文件夹
  11. 胡凡算法之——全排列问题
  12. 【成神之路】开放设计编程相关面试题
  13. 超强的ChatGPT会成为下一代搜索引擎吗?
  14. Android 常用正则表达式
  15. 计算机网络学习笔记(1)
  16. 如何用PS处理虚的照片.使它变的清晰
  17. 新鲜出炉!由腾讯安全深度参编的“首份网络安全态势感知国家标准”发布
  18. 电脑合上盖子不进入休眠模式的问题解决方案
  19. 木门工厂老板诉说木门行业痛点!厂家必看
  20. 显微镜下的奸商-教您修改系统硬件信息(转)

热门文章

  1. paloalto防火墙的优势
  2. 诚之和:玛莎拉蒂女司机醉驾被查时所叫“yuwei”是谁?南昌警方正核查
  3. 主动变被动9个例句_扬州大学 媒体扬大 【新华日报】降噪被动变主动 扬大研制新型隔音屏...
  4. Excel之按原格式复制粘贴工作表
  5. java中的接口自动导入postman和yapi的idea插件----EasyYapi,好用到飞起
  6. 可变参数及Lambda表达式
  7. wifi服务器延迟高,王者荣耀延迟过高怎么办?王者荣耀wifi延迟解决方法
  8. java 邮件发送文字,图片,和文件
  9. 基于javaweb的社区管理系统代码多而简洁 适合修改成各种系统JAVAWEB+html+MYSQL
  10. 克克第一次中午没接回家