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

如何从JSON自动生成带序号LatLng变量并批量生成代码行?

嘿,我来帮你搞定这两个批量生成代码的需求,分两种场景给你实用方案:

一、自动复制代码行并依次命名为name1、name2...

这里有两种简单的实现方式,看你更习惯哪种:

方法1:用代码编辑器的批量操作(VS Code/Sublime Text通用)

  • 先写好第一行基准代码:LatLng name1 = new LatLng(6.3490548, -75.5580200);
  • 选中这行,按Ctrl+Shift+D(Windows/Linux)或Cmd+Shift+D(Mac)复制出你需要的行数
  • 用多光标选中所有的name1:
    • VS Code:按Ctrl+F搜索name1,然后按Alt+Enter选中所有匹配项
    • Sublime Text:按Ctrl+D多次选中所有name1
  • 接下来给序号递增:
    • VS Code:安装「Increment Selection」插件后,选中所有数字部分,按Ctrl+Alt+N就能自动从1开始递增
    • 原生操作:也可以用列编辑模式,按住Alt(Windows/Linux)或Option(Mac)拖动鼠标选中所有数字,然后输入1,接着往下拉鼠标,编辑器会自动帮你把数字依次改成2、3...

方法2:用代码动态生成(适合需要大量行的情况)

如果是Java环境,直接写个小循环打印出所有代码行,复制用就行:

// 按需修改循环次数,比如生成20行
for (int i = 1; i <= 20; i++) {
    System.out.println("LatLng name" + i + " = new LatLng(6.3490548, -75.5580200);");
}

运行这段代码,控制台输出的内容就是你要的带序号的代码,直接复制粘贴到项目里即可。

二、从JSON数据批量生成带序号的LatLng实例

结合你提到的StringRequest(应该是Android开发场景),这里用Java解析JSON并生成代码:

步骤1:解析JSON并生成代码

假设你的JSON响应结构是这样的(包含坐标数组):

{
  "locations": [
    {"lat": 6.3490548, "lng": -75.5580200},
    {"lat": 6.33, "lng": -75.56},
    {"lat": 6.35, "lng": -75.57}
  ]
}

在你的StringRequest的onResponse方法里添加解析逻辑,生成代码:

@Override
public void onResponse(String response) {
    try {
        JSONObject jsonObj = new JSONObject(response);
        JSONArray locationsArray = jsonObj.getJSONArray("locations");
        
        // 遍历数组生成带序号的LatLng代码
        for (int i = 0; i < locationsArray.length(); i++) {
            JSONObject loc = locationsArray.getJSONObject(i);
            double lat = loc.getDouble("lat");
            double lng = loc.getDouble("lng");
            // 生成代码行并打印(或者保存到字符串里)
            String codeLine = "LatLng name" + (i + 1) + " = new LatLng(" + lat + ", " + lng + ");";
            System.out.println(codeLine);
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

运行App后,Logcat里就会输出所有带name1、name2...的LatLng实例代码,直接复制用就行。

方法2:手动处理JSON文本(不需要写代码)

如果只是想快速处理JSON文本,用编辑器正则替换:

  1. 先把JSON里的所有坐标条目提取出来,比如每行是{"lat":6.3490548,"lng":-75.5580200}
  2. 打开编辑器的替换面板(Ctrl+H),勾选正则表达式:
    • 查找内容:{"lat":([\d.-]+),"lng":([\d.-]+)}
    • 替换内容:LatLng nameX = new LatLng($1, $2);
  3. 替换后得到所有带nameX的行,再用方法一里的多光标递增序号,把X改成1、2、3...就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:27:17