javascript - 无法从 json 字符串中删除双引号

标签 javascript jquery json spring-mvc

我无法从 json 字符串中删除双引号。以下是我的代码。

var values = {};
        $.each($('#regForm :input'), function(i, field) {
            if (field.name == "submit") {
                delete field.name;
            } else {
                values[field.name] = field.value; 
            }
        });
        var json_text = JSON.stringify(values);
        var global = JSON.parse(json_text);
        console.log(global);
        $.ajax({
            type : "POST",
            dataType : "JSON",
            data : global,
            url : "http://localhost:8080/SpringRestServices/register",
            beforeSend : function(xhr) {
                xhr.setRequestHeader("Accept", "application/json"); 
                xhr.setRequestHeader("Accept-Encoding", "utf-8");
                xhr.setRequestHeader("Content-type", "application/json");
            },
            success : function(data) {
                alert("success"+data);
                console.log("Success:", data);
            },
            error: function(xhr, textStatus, errorThrown) {
                console.log("HI");
                   alert("Failed to cancel subscription! Message:" + textStatus /*+ jqXHR.errorThrown  + xhr.responseText*/);
                   alert("readyState: " + xhr.readyState);
                   alert("responseText: "+ xhr.responseText);
                   alert("status: " + xhr.status);
                   alert("text status: " + textStatus);
                   alert("error: " + errorThrown);
            }
        });

这是我在 firefox 调试器中看到的输出:

"{"username":"hi","email":"hi@gmail.com","password":"123"}"

我需要实际结果:

{"username":"hi","email":"hi@gmail.com","password":"123"}

谁能帮我解决这个问题。

这是我的服务器代码:

@RequestMapping(value = "/register", method = RequestMethod.POST)
@ResponseBody
public RegisterResponse newAccount(@RequestBody Register registration) {
    String newAccountSql = "INSERT INTO register (email,password,username) VALUES (:email,:password,:username)";
    RegisterResponse regResponse = new RegisterResponse();
    regResponse.setResult(-1);
    // ServiceDataBean<AuthToken> retBean = new
    // ServiceDataBean<AuthToken>();
    try {
        System.out.println("register service calling.....");
        MapSqlParameterSource namedParameters = new MapSqlParameterSource();
        namedParameters.addValue("email", registration.getEmail());
        messageDigest = MessageDigest.getInstance("MD5");
        byte[] md5 = new byte[64];
        messageDigest.update(
                registration.getPassword().getBytes("iso-8859-1"), 0,
                registration.getPassword().length());
        md5 = messageDigest.digest();
        namedParameters.addValue("password", convertedToHex(md5));
        namedParameters.addValue("username", registration.getUsername());
        GeneratedKeyHolder generatedKeyHolder = new GeneratedKeyHolder();

        // TODO what to do with the updInt also check it's not -1
        int updInt = jdbcTemplate.update(newAccountSql, namedParameters,
                generatedKeyHolder);
        regResponse.setResult(0);
        System.out.println("from register");
    } catch (Throwable e) {
        regResponse.setResult(001);
        e.printStackTrace();
    }
    return regResponse;
}

最佳答案

尝试

json_text= json_text.slice(1, json_text.length-1);

关于javascript - 无法从 json 字符串中删除双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22982061/

相关文章:

javascript - AJAX 表单提交不起作用

c# - ASP.NET WebAPI 2 嵌套 JSON

javascript - 如何使用 javascript 回发到不同的表单

javascript - 如何使用纯 javascript 和 css(无 jquery)使除两个同心正方形之间的区域以外的整个屏幕变暗

javascript - 如何获取动态创建的tablerow的值?

javascript - 如何在使用 Jquery 删除许多 DIV 元素时重置计数和修改类名

javascript - Highchart 未执行

c# - 如何用\"修复JSON?

java - 返回 JSONArray 中键值对的字符串表示形式

php - 从 PHP 调用 Ajax 来执行单独的 PHP;有什么危险吗?