javascript - 使用另一个 javascript 返回的 json 数据

标签 javascript json

我正在尝试使用返回的数据并将其传递给另一个 javascript 进行处理。底部代码有效。

var st1 = 'Florida';
var st = convert_state(st1, 'abbrev');
container.find("input[name='State']").val(st);

我尝试过使用:

var st1 = data.state;
var st = convert_state(st1, 'abbrev');
container.find("input[name='State']").val(st);

结果是错误的。我尝试删除引号。

var st1 = data.state.replace(/\"/g, "");
var st = convert_state(st1, 'abbrev');
container.find("input[name='State']").val(st);

结果相同>假

感谢您的浏览。

<script>
    function convert_state(name, to) {
        var name = name.toUpperCase();
        var states = new Array({ 'name': 'Alabama', 'abbrev': 'AL' }, { 'name': 'Alaska', 'abbrev': 'AK' },
            { 'name': 'Arizona', 'abbrev': 'AZ' }, { 'name': 'Arkansas', 'abbrev': 'AR' }, { 'name': 'California', 'abbrev': 'CA' },
            { 'name': 'Colorado', 'abbrev': 'CO' }, { 'name': 'Connecticut', 'abbrev': 'CT' }, { 'name': 'Delaware', 'abbrev': 'DE' },
            { 'name': 'Florida', 'abbrev': 'FL' }, { 'name': 'Georgia', 'abbrev': 'GA' }, { 'name': 'Hawaii', 'abbrev': 'HI' },
            { 'name': 'Idaho', 'abbrev': 'ID' }, { 'name': 'Illinois', 'abbrev': 'IL' }, { 'name': 'Indiana', 'abbrev': 'IN' },
            { 'name': 'Iowa', 'abbrev': 'IA' }, { 'name': 'Kansas', 'abbrev': 'KS' }, { 'name': 'Kentucky', 'abbrev': 'KY' },
            { 'name': 'Louisiana', 'abbrev': 'LA' }, { 'name': 'Maine', 'abbrev': 'ME' }, { 'name': 'Maryland', 'abbrev': 'MD' },
            { 'name': 'Massachusetts', 'abbrev': 'MA' }, { 'name': 'Michigan', 'abbrev': 'MI' }, { 'name': 'Minnesota', 'abbrev': 'MN' },
            { 'name': 'Mississippi', 'abbrev': 'MS' }, { 'name': 'Missouri', 'abbrev': 'MO' }, { 'name': 'Montana', 'abbrev': 'MT' },
            { 'name': 'Nebraska', 'abbrev': 'NE' }, { 'name': 'Nevada', 'abbrev': 'NV' }, { 'name': 'New Hampshire', 'abbrev': 'NH' },
            { 'name': 'New Jersey', 'abbrev': 'NJ' }, { 'name': 'New Mexico', 'abbrev': 'NM' }, { 'name': 'New York', 'abbrev': 'NY' },
            { 'name': 'North Carolina', 'abbrev': 'NC' }, { 'name': 'North Dakota', 'abbrev': 'ND' }, { 'name': 'Ohio', 'abbrev': 'OH' },
            { 'name': 'Oklahoma', 'abbrev': 'OK' }, { 'name': 'Oregon', 'abbrev': 'OR' }, { 'name': 'Pennsylvania', 'abbrev': 'PA' },
            { 'name': 'Rhode Island', 'abbrev': 'RI' }, { 'name': 'South Carolina', 'abbrev': 'SC' }, { 'name': 'South Dakota', 'abbrev': 'SD' },
            { 'name': 'Tennessee', 'abbrev': 'TN' }, { 'name': 'Texas', 'abbrev': 'TX' }, { 'name': 'Utah', 'abbrev': 'UT' },
            { 'name': 'Vermont', 'abbrev': 'VT' }, { 'name': 'Virginia', 'abbrev': 'VA' }, { 'name': 'Washington', 'abbrev': 'WA' },
            { 'name': 'West Virginia', 'abbrev': 'WV' }, { 'name': 'Wisconsin', 'abbrev': 'WI' }, { 'name': 'Wyoming', 'abbrev': 'WY' }
            );
        var returnthis = false;
        $.each(states, function (index, value) {
            if (to == 'name') {
                if (value.abbrev == name) {
                    returnthis = value.name;
                    return false;
                }
            } else if (to == 'abbrev') {
                if (value.name.toUpperCase() == name) {
                    returnthis = value.abbrev;
                    return false;
                }
            }
        });
        return returnthis;
    }
</script>
 $.ajax({
                        "url": url,
                        "dataType": "json"
                    }).done(function (data) {
                        handleResp(data);

                        // Store in cache
                        cache[Zip] = data;
                    }).fail(function (data) {
                        if (data.responseText && (json = $.parseJSON(data.responseText))) {
                            // Store in cache
                            cache[Zip] = json;

                            // Check for error
                            if (json.error_msg)
                                errorDiv.text(json.error_msg);
                        }
                        else
                            errorDiv.text('Request failed.');
                    });

最佳答案

我已经用静态 json 尝试了上面的代码,它工作正常。看来从ajax收到的数据不符合预期。

我创建了一个 plunker 供您引用。

var data = {
  "state" : "Florida"

}

var st1 = data.state;
var st = convert_state(st1, 'abbrev');
alert(st+"");

"http://plnkr.co/edit/VOFKtHo1X6LJsXWg7Eto?p=preview "

关于javascript - 使用另一个 javascript 返回的 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30672690/

相关文章:

javascript - 无法在另一个 div 内创建多个 div

javascript - 有序列表索引

javascript - D3js - 使用 d3.json 从 "JSON data"输入获取绘制的折线图

javascript - 来自 JSON 的自动完成文本框选项

javascript - 使用 JS 或 CSS 一次加载所有背景图像?

javascript - 通过匹配文本将 json 数据放入数组中

java - 使用 Scanner 在 Java 控制台应用程序中接受用户的格式化 Json(多行)输入(未读取所有行)

javascript - 如何解决此Firebase云功能错误: Cannot read property

javascript - 检测我网站上的广告拦截然后显示横幅?

javascript - JavaScript 中可调用对象的构造函数