gpt4 book ai didi

json - 从 json 主体访问键的值

转载 作者:行者123 更新时间:2023-11-28 08:40:58 28 4
gpt4 key购买 nike

我已经向 node express 服务器发送了一个 post 请求

    app.post('/addUsers', function (req, res) {

var newuser = req.body;
console.log(newuser);
fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
data = JSON.parse( data );
data["user4"] = newuser // how can i create a user4 here currently i get an error as newsier is whole req body or something .
console.log( data );
// res.end(data);
res.end( JSON.stringify(data));
});
})

我得到了 newuser 的值来控制台

{ '{"user4":{"password":"killer","id":4,"profession":"kuchbhi","name":"mukesh"}}': '' }

问题是如何获取 user4 的值,以便将其添加到用户列表中。

我正在快速使用这本字典

                                   ["user4":["name" : "mukesh",
"password" : "killer",
"profession" : "kuchbhi",
"id": 4]]

一旦知道它是无效的 json,我就改成了这个

                                ["name" : "mukesh",
"password" : "killer",
"profession" : "kuchbhi",
"id": 4]

并且知道我没有收到错误,但是在添加第四个用户之后来自服务器响应的数据(我已经在 Xcode 控制台中打印了它)完全不是我认为应该的格式,它看起来像这样

["user2": {
id = 2;
name = suresh;
password = password2;
profession = librarian;
}, "user4": {
"{\"password\":\"killer\",\"profession\":\"kuchbhi\",\"id\":4,\"name\":\"mukesh\"}" = "";
}, "user1": {
id = 1;
name = mahesh;
password = password1;
profession = teacher;
}, "user3": {
id = 3;
name = ramesh;
password = password3;
profession = clerk;
}]

所有其他条目都是我在 users.son 中手动添加的。这是登录到终端控制台的内容

  user4: { '{"password":"killer","profession":"kuchbhi","id":4,"name":"mukesh"}': '' } } 

我仍然认为它不是好的 json 还是它?

非常感谢您这个格式转换和服务器获取/发布问题的新手。

最佳答案

目前,您收到/提供的 json 无效。

一旦您真正设法从客户端接收到有效的 JSON,这将如下所示。

var u = {"user4":{"password":"killer","id":4,"profession":"kuchbhi","name":"mukesh"}};

对于任何json,你都可以使用命令获取它的key

var theKeys = Object.keys(u);

在上面的示例中,整个 JSON 只有一个键,因此变量 theKeys 的内容为 [ 'user4' ]。因此,您将能够通过查看 theKeys[0] 来访问您想要的用户名。

同样,你可以使用命令获取内部json文档的属性

Object.keys(u[theKeys[0]]);

这将返回 [ 'password', 'id', 'profession', 'name' ]

编辑

根据下面的评论,也许下面的代码可以帮助您从客户端正确发送 json 对象。

NSDictionary *aDictionary = @{
@"user4": @{@"password": @"killer",
@"id": @4,
@"profession": @"kuchbhi"
}};

NSError * error;
NSData * theData = [NSJSONSerialization dataWithJSONObject:aDictionary options:0 error:&error];
NSString * newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];

NSLog(@"body: %@", newStr);
[newStr release];

下面是一个使用 swift 正确发送 json 的解决方案:https://stackoverflow.com/a/31938246/1355058

关于json - 从 json 主体访问键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36474114/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com