需要从json创建javascript数组

需要从json创建javascript数组,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我需要帮助将此json字符串转换为javascript数组 我试过这样的方法: var cityState = $.map(source, function (value) { return value; }); 其中“source”是此ajax调用的结果: $.ajax({ url: 'http://localhost:49858/Default.aspx/getstuff', dataType: 'json', type: "POST", data: "{}

我需要帮助将此json字符串转换为javascript数组

我试过这样的方法:

var cityState = $.map(source, function (value) { return value; });
其中“source”是此ajax调用的结果:

$.ajax({
    url: 'http://localhost:49858/Default.aspx/getstuff',
    dataType: 'json',
    type: "POST",
    data: "{}",
    contentType: "application/json; charset=utf-8"
}).done(function (source) { ...
但它只是工作不正常

 {"query": "Unit","suggestions":[{"value":"FAIRFIELD, CONNECTICUT","data":"FAIRFIELD, CONNECTICUT"},{"value":"LONG BEACH, CALIFORNIA","data":"LONG BEACH, CALIFORNIA"},{"value":"NEW YORK, NEW YORK","data":"NEW YORK, NEW YORK"},{"value":"HONOLULU, HAWAII","data":"HONOLULU, HAWAII"},{"value":"KANSAS CITY, MISSOURI","data":"KANSAS CITY, MISSOURI"},{"value":"SAN JOSE, CALIFORNIA","data":"SAN JOSE, CALIFORNIA"},{"value":"SOUTH LAKE TAHOE, CALIFORNIA","data":"SOUTH LAKE TAHOE, CALIFORNIA"},{"value":"LAKE DALLAS, TEXAS","data":"LAKE DALLAS, TEXAS"},{"value":"BROOMFIELD, COLORADO","data":"BROOMFIELD, COLORADO"},{"value":"BROOMFIELD, COLORADO","data":"BROOMFIELD, COLORADO"}]}
console.log(源代码)的屏幕截图显示:
这是一个奇怪的物体。看起来您将某个对象编码为JSON,将其设置为对象属性的值,然后再次编码

如果您想获得
建议
数组的所有
的数组,那么您可以这样做

var values = $.map(JSON.parse(source.d).suggestions, function(v){ return v.value });

你想从javascript中得到什么?我希望像source.suggestions这样做,但它不允许我这么做。试图得到数组-[“第一”、“第二”、“第三”、“等等”]
source
不是json类型的字符串;这是一个ObjectIn dystroy在下面的回答,我在问,在我引用它之前,是否需要将该对象转换为特定类型;告诉我它是一个[物体]。但要警惕(来源、建议);只是破坏了东西。我对如何引用“建议”感到困惑。也许我需要将“source”强制转换为特定类型?要知道对象中的内容,请执行(var key in source)console.log(key,source[key])并查看。谢谢-控制台显示它在前面加了一个“d”。d{“query”:“Unit”,…这很奇怪:这不是一个有效的对象。你能截图当你做
console.log(source)
时你会得到什么吗?事实上,这是相反的:你必须将
source.d
从一个JSON字符串解析成一个javascript对象。