标签: stringify

JSON.stringify()<input>值为数字?

我正在使用JSON.stringify()html <input>s通过websocket发送,如下所示:

JSON.stringify({
    numberValue: $('#numberValue').val()
})
Run Code Online (Sandbox Code Playgroud)

但它编码$('#numberValue').val()String.

如何将其编码为Number

javascript json numbers html-input stringify

9
推荐指数
1
解决办法
1万
查看次数

为什么JSON.stringify不显示作为函数的对象属性?

为什么JSON.stringify()不显示prop2?

var newObj = {
  prop1: true,
  prop2: function(){
    return "hello";
  },
  prop3: false
};

alert( JSON.stringify( newObj ) ); // prop2 appears to be missing

alert( newObj.prop2() ); // prop2 returns "hello"

for (var member in newObj) {
    alert( member + "=" + newObj[member] ); // shows prop1, prop2, prop3
}
Run Code Online (Sandbox Code Playgroud)

JSFIDDLE:http: //jsfiddle.net/egret230/efGgT/

javascript json function object stringify

8
推荐指数
2
解决办法
5518
查看次数

使用stringify设置和获取对象到本地存储?

创建一个名为car的对象:

function car(temp){

    this.brand=temp[0];
    this.color=temp[1];
    this.year=temp[2];
}

var temp = ['Skoda', 'Red', '2012'];
car = new car(temp);
Run Code Online (Sandbox Code Playgroud)
  1. 从localStorage读取后设置对象和字符串化:

    localStorage.setItem('car',car);
    car = localStorage.getItem('car');
    car = JSON.stringify(car);
    
    Run Code Online (Sandbox Code Playgroud)

    stringify后的汽车-----------------> [object Object]在file:/// android_asset/www/...

  2. Stringify对象和设置对象后面的localStorage: localStorage.setItem('car',JSON.stringify(car)); car = localStorage.getItem('car');

stringify后的汽车----------------->"{\"品牌\":\"斯柯达\",\"颜色\":\"红色","年份\":\"2012 \"}"at file:/// android_asset/www/...

问题1:为什么它会使字符串化对象时的顺序有所不同?

问题2:为什么我不能像这样使用字符串化对象:

08-21 11:49:14.860: I/Web Console(9642): car after stringify----------------->     {"brand":"Skoda","color":"Red","year":"2012"}
Run Code Online (Sandbox Code Playgroud)

console.log("car.brand ----->"+ car.brand); car.name ----->未定义

javascript object local-storage stringify

8
推荐指数
2
解决办法
3万
查看次数

如何JSON.stringify一个对象数组

我正在尝试JSON.stringify()以下键/值对,其中值是一个对象数组.

var string = JSON.stringify({onlineUsers : getUsersInRoom(users, room)});
Run Code Online (Sandbox Code Playgroud)

这是不正确的,并给出以下错误:

var string = JSON.stringify({onlineUsers:getUsersInRoom(users,room)});

                ^
Run Code Online (Sandbox Code Playgroud)

TypeError:将循环结构转换为JSON

这是方法:

function getUsersInRoom(users, room) {
    var json = [];
    for (var i = 0; i < users.length; i++) {
        if (users[i].room === room) {

            json.push(users[i]);
        }
    }
    return json;
}
Run Code Online (Sandbox Code Playgroud)

添加users数据结构:

[
 {
     id:1,
     username:"",
     room:"room 1",
     client: {
         sessionId:1,
         key:value
     }
 },
 {
     // etc
 }
]
Run Code Online (Sandbox Code Playgroud)

添加了将用户添加到用户阵列的功能.

function addUser(client) {
    clients.push(client);
    var i = clients.indexOf(client);
    if (i > -1) …
Run Code Online (Sandbox Code Playgroud)

javascript arrays json object stringify

8
推荐指数
1
解决办法
2万
查看次数

在javascript中创建对象的两种方法

我正在通过执行以下操作来创建javascript对象:

function field(name,label){
        this.name = name
        this.label= label;
}

var a = new field("market","Mkt").
Run Code Online (Sandbox Code Playgroud)

然后我分配给另一个对象.

object.newField = a;
Run Code Online (Sandbox Code Playgroud)

第二种方法是直接创建新属性

object.2ndNewField = {
    name: "market2",
    label:"Mkt2"
}
Run Code Online (Sandbox Code Playgroud)

我尝试读取其他功能中的对象.但是,当我对对象进行字符串化时,它们表现不一样.我创建的两个属性之间有什么区别?

顺便问一下这个对象有什么区别吗?

 object.2ndNewField = {
        "name": "market2",
        "label":"Mkt2
    }
Run Code Online (Sandbox Code Playgroud)

javascript jquery json object stringify

7
推荐指数
1
解决办法
776
查看次数

使用v8 shell中的stringify

我正在创建一个基于v8 shell的控制台,我采用了v8附带的示例代码并且它运行良好,但我正在尝试将v8 ::对象转换为它的字符串版本(json)但是没有找到一个这样做的方式.

这是我在shell.cc中的示例代码:



    v8::Handle test(const v8::Arguments& args) {
        v8::HandleScope handle_scope;
        const char* json;
        v8::String::Utf8Value strJson(args[0]);
        printf(ToCString(json));
        if (args[0]->IsObject()) {
           printf("it's an object\n");
        }
        return v8::String::New("");
    }

Run Code Online (Sandbox Code Playgroud)

在shell中我创建了一个文件test.js:



    var a = {  name: 'John' };
    test(a);

Run Code Online (Sandbox Code Playgroud)

我在shell控制台中执行js后得到这个:



    [object Object]
    It's an object

Run Code Online (Sandbox Code Playgroud)

我想要的是:



    { "name": "John" }

Run Code Online (Sandbox Code Playgroud)

如果我将js代码更改为:



    var a = { name: 'John'}
    test(JSON.stringify(a));

Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我不希望用户必须知道如何将javascript变量解析为json,我不想检查对象的每个输入并手动解析它.

有没有办法在C中的shell.cc代码中执行相同的指令?就像是:



    v8::Handle<v8::String> temp = JSON.parse(arg[0]);

Run Code Online (Sandbox Code Playgroud)

更新:我正在处理这个问题,但我想要一个更清洁的方法来做同样的事情:



    const char* toJson(const v8::Local<v8::Object>& obj) {
       std::stringstream ss;
       ss << "{";
       v8::Local<v8::Array> propertyNames = obj->GetPropertyNames();

       for (int …
Run Code Online (Sandbox Code Playgroud)

javascript v8 stringify

7
推荐指数
1
解决办法
3868
查看次数

在JSON.stringify中使用变量

我在节点restful server中使用stringify来提供数据:

answer = JSON.stringify({activities: result}, null, '\t');
return answer
Run Code Online (Sandbox Code Playgroud)

其中result是一个js对象; 我收到了正确的输出:

{
"activities": [
    {
     "id": 1,
     "title": aaa
    },
    { 
     "id": 2,
     "title": bbb
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但现在我想在stringify函数的左边部分使用变量而不是固定字符串; 就像是:

var name = "activities";
answer = JSON.stringify({name: result}, null, '\t');
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为name成为字符串化对象中的固定字符串

javascript json node.js stringify

7
推荐指数
2
解决办法
1万
查看次数

嵌套对象上的JSON.stringify忽略嵌套对象

当你用Chrome检查时,我正在创建一个看起来像这样的对象:

Chrome检查器中的对象

当我尝试使用JSON.stringify对此对象进行字符串化时,我得到以下结果:

{
    "results" : [{
            "ID" : 1,
            "NAME" : "Admin"
        }, {
            "ID" : 2,
            "NAME" : "Standarduser"
        }, {
            "ID" : 3,
            "NAME" : "Consultant"
        }, {
            "ID" : 4,
            "NAME" : "Leergruppe"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,所有嵌套节点都缺失.我确信这是非常简单和无意识的,但此刻我根本找不到我的错误.非常感谢你的帮助!

编辑:JSFiddle如何创建JSON:http://jsfiddle.net/VJTaV/

javascript json object stringify

7
推荐指数
1
解决办法
2840
查看次数

使用 JSON.stringify() 时如何忽略 .toJSON 函数?

我发现,如果您.toJSON()为对象定义函数,那么它将用于字符串化对象,而不是默认值。有没有办法忽略这个覆盖的函数并运行默认的 stringify 进程?

javascript json overriding default stringify

7
推荐指数
1
解决办法
1844
查看次数

使用 GNU gfortran 将宏字符串化

如何使用 GNU gfortran 对预处理器宏进行字符串化?我想将宏定义传递给 GNU gfortran,然后将其用作代码中的字符串。

实际上,我想这样做:

program test
implicit none
character (len=:), allocatable :: astring
astring = MYMACRO
write (*, *) astring
end program test
Run Code Online (Sandbox Code Playgroud)

然后构建:

gfortran -DMYMACRO=hello test.F90
Run Code Online (Sandbox Code Playgroud)

我尝试创建各种宏,例如:

#define STRINGIFY_(x) #x
#define STRINGIFY(x) STRINGIFY_(x)
...
astring = STRINGIFY(MYMACRO)
Run Code Online (Sandbox Code Playgroud)

但这不适用于 gfortran 预处理器。

我还尝试使用不同风格的宏:

#define STRINGIFY(x) "x"
...
astring = STRINGIFY(MYMACRO)
Run Code Online (Sandbox Code Playgroud)

但这只会创建一个包含文本“MYMACRO”的字符串。

然后我尝试将宏定义更改为:

-DMYMACRO=\"hello\"
Run Code Online (Sandbox Code Playgroud)

但这在构建过程中导致了无关的问题。

感谢您的帮助

preprocessor fortran gfortran stringification stringify

7
推荐指数
1
解决办法
1583
查看次数