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
相关产品推荐
相关产品推荐

