【发布时间】:2012-08-08 07:59:02
【问题描述】:
过去一周我一直在努力解决这个问题,但我尝试的一切似乎都不起作用。
我必须在我的本地机器上创建一个响应请求的 Web 服务。客户端(不是我写的)将一次向我的服务询问一个问题,我的服务器应该给出适当的答案。
所以我要做的最后一件事是:
-
当在位置 '/sort' 使用参数 'theArray' 发出 POST 请求时,排序数组删除所有非字符串值并将结果值作为JSON返回。
- theArray 参数将是一个字符串化的 JSON 数组
经过反复试验,我发现提供的参数是:
{"theArray":"[[],\"d\",\"B\",{},\"b\",12,\"A\",\"c\"]"}
我尝试了许多不同的方法来尝试使其正常工作。但我能得到的最接近的东西是它只返回相同的东西或什么都不返回。这是我用来获得这些结果的代码:
case '/sort':
if (req.method == 'POST') {
res.writeHead(200,{
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
});
var fullArr = "";
req.on('data', function(chunk) {
fullArr += chunk;
});
req.on('end', function() {
var query = qs.parse(fullArr);
var strin = qs.stringify(query.theArray)
var jArr = JSON.parse(fullArr);
console.log(jArr); // Returns undefided:1
var par = query.theArray;
console.log(par); // returns [[],"d","B",{},"b",12,"A","c"]
function censor(key) {
if (typeof key == "string") {
return key;
}
return undefined;
}
var jsonString = JSON.stringify(par, censor);
console.log(jsonString); // returns ""
});
res.end();
};
break;
只是为了澄清我需要它返回的是["d","B","b","A","c"]
因此,如果有人可以帮助我解决这个问题,并且如果可能的话,用一些书面代码做出回应,这些代码的设置方式已经可以与我设置代码的方式一起使用,那就太好了!谢谢
【问题讨论】:
-
那么,你的对象被正确解析了,你只需要获取字符串元素吗?这更像是一个算法问题。我说的对吗?
-
我会说是的。我只需要返回数组中的字符串。所以需要取出 []、{} 和 12 以便我可以返回字符串
-
好的。看看我的回答。我会尽量按照你的方式去做。
标签: javascript arrays json node.js