一、对象转成数组
对象转成数组是最常见的一种数据类型转换,在JavaScript中可以使用Object.entries()或Object.values()方法将对象转成数组。
const obj = { a: '1', b: '2', c: '3' }; const arr1 = Object.entries(obj); // 输出结果:[ ["a", "1"], ["b", "2"], ["c", "3"] ] const arr2 = Object.values(obj); // 输出结果:[ "1", "2", "3" ]
可以看到,Object.entries()方法将对象的键值对转成了数组的元素,而Object.values()方法直接将对象的属性值转成了数组的元素。这两种方法都只会转换对象自身可枚举属性,不包括继承属性和Symbol类型的属性。
二、对象转成数组js
在JavaScript的语法规范中,对象和数组都是一种基本数据类型,因此可以直接将对象转换为数组。
代码如下:
const obj = { a: '1', b: '2', c: '3' }; const arr = [obj];
上面的代码将obj对象转换为包含一个元素的数组,可用于Ajax的POST请求以及参数的传递等场景。
三、对象转成list
在Java的开发中经常用到的一种数据结构是List,我们可以通过将对象转成List来使用List中提供的操作方法。Java中有很多实现List接口的类,如ArrayList、LinkedList等,这里我们以ArrayList为例来演示:
import java.util.ArrayList; import java.util.List; import java.util.Map; public class ObjectToListTest { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("a", "1"); map.put("b", "2"); map.put("c", "3"); List<String> list = new ArrayList<>(map.values()); for (String value : list) { System.out.println(value); } } }
上述代码中,我们首先创建了一个Map对象,并向其中添加了三组键值对。接着,我们使用map.values()方法提取Map对象的属性值,并将其存放到一个ArrayList对象中。最后,我们使用for-each循环遍历ArrayList并输出其中的元素。
四、对象转成json
将对象转换为JSON字符串是一种非常常见的数据类型转换操作。在JavaScript中可以使用JSON.stringify()方法将对象转换为JSON字符串。
const obj = { a: '1', b: '2', c: '3' }; const json = JSON.stringify(obj); // 输出结果:{"a":"1","b":"2","c":"3"}
需要注意的是,因为JSON字符串的格式要求很严格,所以在对象的属性名和属性值中不要包含任何非法字符。
五、对象转成数组的方法
除了前面提到的Object.entries()和Object.values()方法外,还有一些其他的方法可以将对象转换为数组。
① 使用数组的结构赋值方法:
const obj = { a: '1', b: '2', c: '3' }; const arr = [...Object.entries(obj)]; // 输出结果:[ ["a", "1"], ["b", "2"], ["c", "3"] ]
② 使用Array.from()方法:
const obj = { a: '1', b: '2', c: '3' }; const arr = Array.from(Object.entries(obj)); // 输出结果:[ ["a", "1"], ["b", "2"], ["c", "3"] ]
③ 使用Object.keys()方法配合map()方法:
const obj = { a: '1', b: '2', c: '3' }; const arr = Object.keys(obj).map(key => [key, obj[key]]); // 输出结果:[ ["a", "1"], ["b", "2"], ["c", "3"] ]
六、对象转成字符串
除了将对象转换为JSON格式的字符串以外,我们还可以通过一些简单的方法将对象转换为字符串。
① 使用模板字符串或字符串拼接方法:
const obj = { a: '1', b: '2', c: '3' }; const str1 = `a=${obj.a}, b=${obj.b}, c=${obj.c}`; // 输出结果:a=1, b=2, c=3 const str2 = "a=" + obj.a + ", b=" + obj.b + ", c=" + obj.c; // 输出结果:a=1, b=2, c=3
② 使用字符串的replace()方法:
const obj = { a: '1', b: '2', c: '3' }; const str = JSON.stringify(obj).replace(/[{\}"']/g, "")
上述代码使用了replace()方法,并使用正则表达式将生成的JSON字符串中包含的字符'{''}''"''和单引号去掉,得到了我们所需的键值对字符串。
七、对象转成JSON字符串
在Java开发中,我们经常需要将Java对象转换为JSON字符串,这时候我们可以使用第三方的JSON处理工具,如FastJson、Gson等,这里我们以FastJson为例。
import com.alibaba.fastjson.JSONObject; public class ObjectToJsonTest { public static void main(String[] args) { User user = new User("John", "Doe", 28); JSONObject jsonObject = new JSONObject(); jsonObject.put("name", user.getName()); jsonObject.put("lastName", user.getLastName()); jsonObject.put("age", user.getAge()); String jsonStr = jsonObject.toJSONString(); System.out.println(jsonStr); } } class User { private String name; private String lastName; private int age; public User(String name, String lastName, int age) { this.name = name; this.lastName = lastName; this.age = age; } public String getName() { return name; } public String getLastName() { return lastName; } public int getAge() { return age; } }
上述代码中,我们首先获取了一个User对象,并以该对象为数据源生成了一个JSONObject对象。接着,我们使用toJSONString()方法将JSONObject对象转换为JSON字符串。
八、对象转成JSONObject
在Java开发中,我们也可以直接将Java对象转换为JSON对象。使用FastJson的JSON.parseObject()方法即可实现。
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; public class ObjectToJSONObjectTest { public static void main(String[] args) { String jsonStr = "{\"name\":\"John\",\"lastName\":\"Doe\",\"age\":28}"; JSONObject jsonObject = JSON.parseObject(jsonStr); System.out.println(jsonObject.get("name")); System.out.println(jsonObject.get("lastName")); System.out.println(jsonObject.get("age")); } }
上述代码中,我们首先将一个JSON格式的字符串jsonStr转换为了JSONObject对象,并输出了其中的键值信息。