【问题标题】:convert this java code to javascript [closed]将此java代码转换为javascript [关闭]
【发布时间】:2012-11-21 14:24:53
【问题描述】:

我使用所有方法将数组从php传输到js,但最好的解决方案是使用

JSON_encode($arr);

所有的解码方法都失败了 最后我决定手动执行它,在 JavaScript 中接收到的数据是这样的:["208","2812"] 通过这个 java 代码转换为整数数组,但我不知道如何将它传输到 javascript

String arr = "[\"208\",\"2507\"]";

//this its the output of him ["208","2507"]

String[] items = arr.replaceAll("\\[", "").replaceAll("\\]", "").split(",");

int[] results = new int[items.length];

for (int i = 0; i < items.length; i++) {

        results[i] = Integer.parseInt(items[i]);
}

【问题讨论】:

  • 我不太确定你在这里问什么。您是否正在使用 php 解析 JSON,但您想将其传输到 javascript?我……真的很困惑。
  • SO 不是移植服​​务。学习 Javascript。
  • 另外,这看起来像是 X-Y 问题的一个实例。 “所有的解码方法都失败了”——在 JavaScript 中解码 JSON 应该是微不足道的。为什么不寻求帮助呢?
  • @user1874258 JSON 中的 JS 代表 Javascript...不需要做各种令人讨厌的事情来让 JS 读取 JSON。您还应该立即忘记您曾经看过那段Java,它很丑陋。如果您需要在 Java 中解析或生成 JSON,请使用 GSON 或 Jackson。
  • 我不知道你为什么用 PHP 标记它。

标签: java javascript json


【解决方案1】:

给定一个 JSON 格式的字符串:

var arr = "[\"208\",\"2507\"]";

你可以得到一个实际的数组:

var items = JSON.parse(arr);

虽然包含字符串。要将字符串转换为整数:

var results = items.map(function(v){return parseInt(v,10);});

或者在一行中:

var results = JSON.parse(arr).map(function(v){return parseInt(v,10);});

但是如果您需要数组中的项目是整数,为什么不首先输出整数,而不是字符串:

var arr = "[208,2507]";

那么你只需要:

var results = JSON.parse(arr);

【讨论】:

    【解决方案2】:

    你真的应该在 Java 中也使用 JSON。

    在 JavaScript 中,它应该是这样的:

    var arrstring = "[\"208\",\"2507\"]";
    var items = JSON.parse(arrstring);
    var results = [];
    for (var i=0, i<items.length; i++)
        results[i] = parseInt(items[i], 10);
    

    【讨论】:

      猜你喜欢
      • 2013-06-28
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多