Tag: json

有没有办法在JavaScript中testing循环引用?

我正在做一个游戏,我遇到了一个问题…当我试图保存,JSON失败,并报告循环引用正在某处。 我不认为它实际上是,我看不到它,所以有一个algorithm或任何东西可以告诉我究竟(哪些对象和东西之间)? 另外,是否有一个可以保存循环引用的JSON替代方法? 我正在运行一个node.js服务器,我看到这个 ,但是我不能让它工作(它不是作为一个模块,我可以要求()在我的代码)。

在Windows上使用utf8编码的文件导致node.js读取文件错误

我想在Windows 8.1上使用node.js(0.10.29)从磁盘加载一个UTF8 json文件。 以下是运行的代码: var http = require('http'); var utils = require('util'); var path = require('path'); var fs = require('fs'); var myconfig; fs.readFile('./myconfig.json', 'utf8', function (err, data) { if (err) { console.log("ERROR: Configuration load – " + err); throw err; } else { try { myconfig = JSON.parse(data); console.log("Configuration loaded successfully"); } catch (ex) { […]

如何用jsonpath列出对象键名?

我正在使用jsonpath的nodejs 。 我有这个JSON结构: { things:{ books: [ {name: "book1"}, {name: "book2"}, {name: "book3"}, {name: "book4"}, ], movies: [ {name: "movie1"}, {name: "movie2"}, {name: "movie3"}, {name: "movie4"}, ] } } 我想知道jsonpathexpression式返回一个数组与things对象的键名称。 那将是: ["books","movies"] 现在,我正在这样做: Object.keys(jsonpath.eval(jsonStructure,"$.things").pop()); 但我不觉得它优雅…我不应该需要得到整个结构的副本,当我只需要关键的名字。

node.js + MySQL&JSON结果 – callback问题&没有响应客户端

我想使用node.js查询mySQL数据库,并返回结果作为JSON在移动应用程序中使用。 不幸的是,我的请求只是sorting超时,服务器没有任何好的2分钟,直到日志文件显示我的console.log() statements。 而且,callback不会返回任何结果。 这只是空的。 // Check dependencies var http = require('http'); // Create the http server. // reference: http://net.tutsplus.com/tutorials/javascript-ajax/node-js-for-beginners/ http.createServer(function(request, response) { // Attach listener on end event. request.on('close', function() { console.log('request'); // run asynchronous getSQL(function(err, result) { console.log('json:', result); response.writeHead(200, { 'Content-Type' : 'x-application/json' }); // Send data as JSON string. response.end(result); }); […]

在Express.js中POST数据JSONvalidation

我正在使用Node.js和Express.js编写一个应用程序。 该应用程序有一个(小)REST API,然后是一个Web前端。 我使用MongoDb。 对于API,我倾向于POST数据到某个端点,然后进行处理或者其他操作,并将其转储到数据库中。 但是,我有一些数据库架构,我想强制执行。 什么是我的选项/最佳做法,强制执行我的POST数据的特定结构,所以我知道某些领域是目前和特定types。 如果这可以在中间件级别完成,那将是很好的,但这不是必需的。 人们通常为validation/模式执行做什么?

为什么JSON.stringify不序列化原型值?

我一直在处理一些JSONparsing,并最近在Node.js和浏览器中传入Javascript,并碰到了这个难题。 我使用构造函数创build的任何对象都不能完全通过JSON.stringify完全序列化,除非我单独初始化构造函数中的所有值! 这意味着我的原型在devise这些类时变得基本没用。 有人可以解释为什么以下不按我所期望的序列化? var ClassA = function () { this.initialisedValue = "You can see me!" }; ClassA.prototype = { initialisedValue : "You can't see me!", uninitialisedValue : "You can't see me!" }; var a = new ClassA(); var a_string = JSON.stringify(a); 怎么了: a_string == {“initialisedValue”:“你可以看到我!” } 我会期待: a_string == {“initialisedValue”:“你可以看到我!”,“uninitialisedValue”:“你看不到我!” }

如何在Node.js中parsing包含“NaN”的JSONstring

有一个接收包含文字NaN的JSON数据string的node.js应用程序 "[1, 2, 3, NaN, 5, 6]" 这在Node.js中崩溃了JSON.parse(…) 我想parsing它,如果我可以成为一个对象。 我知道NaN不是JSON规范的一部分。 大多数SO链接( 在JSON中发送NaN )build议修复输出。 在这里,虽然数据是在我不能控制的服务器中生成的,但是我可以通过商业Java库来查看源代码。 它是由Google的Gson库生成的: private Gson gson = (new GsonBuilder().serializeSpecialFloatingPointValues().create()); … gson.toJson(data[i], Vector.class, jsonOut) 所以这似乎是一个合法的来源。 根据Gson API Javadoc,它说我应该能够parsing它: JSON规范的2.4节不允许特殊的双精度值(NaN,Infinity,-Infinity)。 但是,Javascript规范(请参阅4.3.20,4.3.22,4.3.23节)允许这些值作为有效的Javascript值。 而且,大多数JavaScript引擎都可以在JSON中接受这些特殊的值。 因此,在实际的层面上,尽pipeJSON规范不允许这些值,但将这些值作为有效的JSON接受是合理的。 尽pipe如此,Node.js和Chrome都失败了: JSON.parse('[1,2,3,NaN,"5"]') 有没有在JSON.parse()中设置标志? 或者接受NaN作为文字的替代parsing器? 我一直在谷歌search了一段时间,但似乎无法find关于这个问题的文件。 PHP:如何编码无限或NaN号码到JSON?

node.js和json运行时错误

我正在使用node.js并试图parsing请求的JSON正文。 我收到以下错误: undefined:0 ^ SyntaxError: Unexpected end of input at Object.parse (native) at IncomingMessage.<anonymous> (C:\node\xxxx.js:36:14) at IncomingMessage.emit (events.js:64:17) at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:130:23) at Socket.ondata (http.js:1506:22) at TCP.onread (net.js:374:27) 我在做: request.on('data', function(chunk) { data+=chunk; }); // and in the end I am doing obj = JSON.parse(data); // it's complaining at this point. input是: { "result": […]

package.json必须是实际的JSON,而不仅仅是JavaScript

我用http://jsonlint.com/来检查这个package.json文件的语法 { "name": "hello-world", "description": "hello world test app", "version": "0.0.1", "private": true, "dependencies": { "express": “4.6.1" } } 它返回错误 Parse error on line 7: … "express": “4.6.1" }} ———————-^ Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[' 不知道这是什么问题。 terminal抛出使用npm安装的错误 "Failed to parse package.json data. npm ERR! package.json must be actual JSON, not just JavaScript."

npm通知创build了一个lockfile作为package-lock.json。 你应该提交这个文件

我一直在试图用npm install express加载express的骨架。 它输出以下行: npm通知创build了一个lockfile作为package-lock.json。 你应该提交这个文件。 我应该怎么做才能自动加载模板ejs和css引擎?