一、对象转成数组
对象转成数组是最常见的一种数据类型转换,在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对象,并输出了其中的键值信息。