android json 驼峰,格式化JSON数据被驼峰格式(formatting json data to be camelCas
我从那个看起来像这样的服务器的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相关推荐
- java学习笔记——springmvc 之 数据自定义转换器 数据格式化 JSR303数据校验返回与接收JSON(@RequestBody 和 @ResponseBody)
九.数据绑定流程分析 1.提出问题 日期字符串格式的表单参数,提交后转换为Date类型 <!-- 解决问题: 1.数据类型转换 2.数据格式 3.数据校验 --> BirthDay ...
- xml的数据交换以及xml和json数据交换的比较
一.什么是Web Service ? Web Services 是有企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过internet来访问并使用这项在线服务 WebServicc ...
- 读json文件并修改数据
读json文件并修改数据 <html><head><title>读json文件并修改数据</title><meta charset='utf-8' ...
- 用ajax提交数据到ashx用JSON.stringify格式化参数后在服务器端取不到值?[转载至:http://q.cnblogs.com/q/34266/]...
用ajax提交数据到ashx用JSON.stringify格式化参数后在服务器端取不到值?[转载至:http://q.cnblogs.com/q/34266/] 前台代码: $(function () ...
- php音频转换接口,PHP实现chrome表单请求数据转换为接口使用的json数据
为什么要写转换程序 最近在做旧版程序迁移,旧的架构为常规的MVC模式,新版架构全部改成restful架构. 由于改版数据是一致的,但是请求结构不一致,新版的请求全部以json形式提交,为了方便测试,之 ...
- json日期格式化 java_java_Java Web程序中利用Spring框架返回JSON格式的日期,返回Json时格式化日期Date
第一 - phpStudy...
Java Web程序中利用Spring框架返回JSON格式的日期 返回Json时格式化日期Date第一步:创建CustomObjectMapper类 /** * 解决SpringMVC使用@Respo ...
- mysql json 函数_MYSQL 开发设计表是硬邦邦的VARHCAR 还是JSON TYPE 来处理数据更香
开发在使用MySQL中,建立比较大的VARCHAR字段来存储SQL执行的语句或者利用MYSQL 来存储什么VARCHAR(1000) VARCHAR(2000) 之类的事情比比皆是,实际上存储超高的字 ...
- 【Groovy】json 序列化 ( 类对象转为 json 字符串 | 使用 JsonBuilder 进行转换 | 使用 JsonOutput 进行转换 | 将 json 字符串格式化输出 )
文章目录 一.Groovy 对象转为 json 字符串 ( 使用 JsonBuilder 进行转换 ) 二.使用 JsonOutput 将指定类型对象转为 json 字符串 三.将 json 字符串格 ...
- json 转对象函数_JSON_QUERY()函数从JSON数据提取对象
json 转对象函数 In this article, we will explore JSON_QUERY() functions in SQL Server to extract JSON obj ...
最新文章
- 体验使用node.js创建vue+Element-UI项目
- 简单型的弱电机房工程汇报方案
- AreYouBusy
- Kmplayer播放器 绿色免安装版 2016 中文版
- ServiceStack学习之一准备工作
- VSTO项目的MSB3482错误
- 买书动态规划java_《编程之美》买书问题——动态规划
- 修改双系统启动的名称
- 台达plc ec3程序下载通讯设置_【台达PLC】入门这样学!基础详解!
- 如何访问云服务器的共享文件,怎么访问云服务器的共享文件夹
- 胡凡算法之——全排列问题
- 【成神之路】开放设计编程相关面试题
- 超强的ChatGPT会成为下一代搜索引擎吗?
- Android 常用正则表达式
- 计算机网络学习笔记(1)
- 如何用PS处理虚的照片.使它变的清晰
- 新鲜出炉!由腾讯安全深度参编的“首份网络安全态势感知国家标准”发布
- 电脑合上盖子不进入休眠模式的问题解决方案
- 木门工厂老板诉说木门行业痛点!厂家必看
- 显微镜下的奸商-教您修改系统硬件信息(转)
热门文章
- paloalto防火墙的优势
- 诚之和:玛莎拉蒂女司机醉驾被查时所叫“yuwei”是谁?南昌警方正核查
- 主动变被动9个例句_扬州大学 媒体扬大 【新华日报】降噪被动变主动 扬大研制新型隔音屏...
- Excel之按原格式复制粘贴工作表
- java中的接口自动导入postman和yapi的idea插件----EasyYapi,好用到飞起
- 可变参数及Lambda表达式
- wifi服务器延迟高,王者荣耀延迟过高怎么办?王者荣耀wifi延迟解决方法
- java 邮件发送文字,图片,和文件
- 基于javaweb的社区管理系统代码多而简洁 适合修改成各种系统JAVAWEB+html+MYSQL
- 克克第一次中午没接回家