js数据结构转化,将string数据转化成json格式

Dyfearl 2019-01-03 02:55:01
谢谢各位大佬指点
...全文
919 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
漠子凉 2019-01-18
  • 打赏
  • 举报
回复

var sourceArr = [
'奴隶社会,非洲,古埃及文明,金字塔',
',亚洲,两河流域文明,汉谟拉比法典',
',,古印度,种姓制度',
',,,佛教的创立',
',欧洲,希腊,希腊城邦',
',,罗马,城邦',
',,,帝国的征服与扩展',
]

function recursiveSource(sourceArr) {
var obj = {}

for (var i = 0; i < sourceArr.length; i++) {
var source = sourceArr[i]
var sourceSplit = source.split(',')

// 获取同级
if(sourceSplit[0] != '') {
obj[sourceSplit[0]] = []
var sourceChildArr = []

// 获取子元素的同级
for (var j = i; j < sourceArr.length; j++) {
var sourceChild = sourceArr[j]
var sourceChildSplit = sourceChild.split(',')

// 获取当前级的子元素
if(j == i) {
sourceChildArr.push(sourceChildSplit.slice(1).join(','))
}
else {
if(sourceChildSplit[0] != '')
{
// 遇到同级就退出当前循环
break
}
else {
// 获取其他子元素
var sourceChildSlice = sourceChildSplit.slice(1).join(',')
sourceChildArr.push(sourceChildSlice)
}
}
}
// 进入递归
obj[sourceSplit[0]].push(recursiveSource(sourceChildArr))
}
}
return obj
}
var recursiveSourceJson = recursiveSource(sourceArr)
前端○萌妹 2019-01-15
  • 打赏
  • 举报
回复
感觉转化不了,毕竟什么规则都没有
射手座cl 2019-01-09
  • 打赏
  • 举报
回复
我没看错的话,只有键没有值吗?
AndroidStudy2018 2019-01-09
  • 打赏
  • 举报
回复
虽然我不懂,但是帮你顶了
JAVA数据转换为JSON格式 示例代码: JSON字符串和java对象的互转【json-lib】 在开发过程中,经常需要和别的系统交换数据数据交换的格式有XML、JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好,下面先看下JSON格式JSON可以有两种格式,一种是对象格式的,另一种是数组对象, {"name":"JSON","address":"北京市西城区","age":25}//JSON的对象格式的字符串 [{"name":"JSON","address":"北京市西城区","age":25}]//数据对象格式 从上面的两种格式可以看出对象格式和数组对象格式唯一的不同则是在对象格式的基础上加上了[],再来看具体的结构,可以看出都是以键值对的形式出现的,中间以英文状态下的逗号(,)分隔。 在前端和后端进行数据传输的时候这种格式也是很受欢迎的,后端返回json格式的字符串,前台使用js中的JSON.parse()方法把JSON字符串解析为json对象,然后进行遍历,供前端使用。 下面进入正题,介绍在JAVA中JSON和java对象之间的互转。 要想实现JSON和java对象之间的互转,需要借助第三方jar包,这里使用json-lib这个jar包,下载地址为:https://sourceforge.net/projects/json-lib/,json-lib需要commons-beanutils-1.8.0.jar、commons-collections-3.2.1.jar、commons-lang-2.5.jar、commons-logging-1.1.1.jar、ezmorph-1.0.6.jar五个包的支持,可以自行从网上下载,这里不再贴出下载地址。 json-lib提供了几个类可以完成此功能,例,JSONObject、JSONArray。从类的名字上可以看出JSONObject转化的应该是对象格式的,而JSONArray转化的则应该是数组对象(即,带[]形式)的。 一、java普通对象和json字符串的互转 java对象--》》字符串 java普通对象指的是java中的一个java bean,即一个实体类,如, 复制代码 package com.cn.study.day3; public class Student { //姓名 private String name; //年龄 private String age; //住址 private String address; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + ", address=" + address + "]"; } } 复制代码 上面是我的一个普通的java实体类,看json-lib如何把它转化为字符串形式, 复制代码 public static void convertObject() { Student stu=new Student(); stu.setName("JSON"); stu.setAge("23"); stu.setAddress("北京市西城区"); //1、使用JSONObject JSONObject json = JSONObject.fromObject(stu); //2、使用JSONArray JSONArray array=JSONArray.fromObject(stu); String strJson=json.toString(); String strArray=array.toString(); System.out.println("strJson:"+strJson); System.out.println("strArray:"+strArray); }

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧