You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 4中解析包含字符串与整数的JSON数组

嘿,这个问题我太熟了!当JSON数组里混着整数和字符串时,其实处理起来很简单——核心逻辑就是先正常解析数组,再把所有元素统一转成字符串。我给你分享几个常用编程语言的实现方法:

Python 处理方案

Python的json模块会自动把JSON里的整数解析成Python的int类型,字符串则保留为str。要把所有元素转成字符串,只需要遍历数组,对每个元素调用str()就行:

import json

# 示例JSON字符串
json_str = '[123, "abc", 456, "def"]'
# 解析为Python列表
parsed_data = json.loads(json_str)
# 批量转换为字符串类型
str_converted = [str(item) for item in parsed_data]
print(str_converted)  # 输出: ['123', 'abc', '456', 'def']

如果是嵌套数组(比如数组里还有子数组),可以写个递归函数处理所有层级的元素:

def convert_all_to_string(obj):
    if isinstance(obj, list):
        return [convert_all_to_string(item) for item in obj]
    return str(obj)

# 嵌套结构的JSON示例
nested_json = '[1, ["apple", 25], 3.14, "banana"]'
nested_data = json.loads(nested_json)
converted_nested = convert_all_to_string(nested_data)
print(converted_nested)  # 输出: ['1', ['apple', '25'], '3.14', 'banana']

JavaScript 处理方案

在JavaScript里,JSON.parse()之后,数组中的整数是Number类型,字符串是String类型。用map()方法就能快速把所有元素转成字符串:

const jsonStr = '[123, "abc", 456, "def"]';
const parsedData = JSON.parse(jsonStr);
const strConverted = parsedData.map(item => String(item));
console.log(strConverted); // 输出: ["123", "abc", "456", "def"]

同样,处理嵌套数组的话,递归函数也能搞定:

function convertAllToString(obj) {
    if (Array.isArray(obj)) {
        return obj.map(item => convertAllToString(item));
    }
    return String(obj);
}

const nestedJson = '[1, ["apple", 25], 3.14, "banana"]';
const nestedData = JSON.parse(nestedJson);
const convertedNested = convertAllToString(nestedData);
console.log(convertedNested); // 输出: ["1", ["apple", "25"], "3.14", "banana"]

总的来说,不管用什么语言,思路都是一致的:先完成JSON的正常解析,再通过遍历(或递归遍历)把每个元素强制转换为字符串类型,就能得到全字符串的数组啦!

内容的提问来源于stack exchange,提问作者Lucas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:14:56