您的位置:

对象转成map

一、对象转成数组

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