簡體   English   中英

JSON - 如何在 objectArray 字符串中添加 object?

[英]JSON - How do I add object in an objectArray string?

我對 javascript 有點陌生。 幾天前我開始了一個node js項目。 我遇到了一些 javascript 問題,但已經回答的問題幫助我度過了難關。 雖然,有一個問題我找不到解決方案。 我的代碼是這樣的:

con.query("SELECT * FROM posts WHERE post_type = 'post' ORDER BY `id` DESC LIMIT 10", function(err, result, fields) {
                if (err) throw err;
                var i;
                var statuses = "[";
                for (i = 0; i < 4; i++) {
                    username = result[i].poster;
                    message = result[i].message_text;
                    id = result[i].id;
                    post_type = result[i].post_type;
                    reply_to = result[i].reply_to;
                    
                    statuses = statuses + '{"p":"1.jpg","s":0,"u":"' +username+ '","id":' + id + ',"m":"' + message + '"},'
                    
                }

                statuses = statuses.substring(0, statuses.length - 1);
                statuses = statuses + ']'

                ws.send('{"action":"Load statuses","statuses":' + statuses + '}');      

            });

for 循環之后,我想獲取看起來像這樣的整個狀態字符串變量:

{"p":"1.jpg","s":0,"u":"test","id":1,"m":"1st message"},{"p":"1.jpg","s":0,"u":"test","id":2,"m":"2nd message"},{"p":"1.jpg","s":0,"u":"test","id":3,"m":"3rd message"},{"p":"1.jpg","s":0,"u":"test","id":4,"m":"4th message"}

並添加一個 object。 但不是在前面或結尾。 在里面。 像這樣:

{"p":"1.jpg","s":0,"u":"test","id":1,"m":"1st message"},{"p":"1.jpg","s":0,"u":"test","id":123,"m":"The new message!"},{"p":"1.jpg","s":0,"u":"test","id":2,"m":"2nd message"},{"p":"1.jpg","s":0,"u":"test","id":3,"m":"3rd message"},{"p":"1.jpg","s":0,"u":"test","id":4,"m":"4th message"}

長話短說,我想知道是否有任何 function 通過他們的 id 在其他人旁邊添加對象。

示例: statuses.addNewObject(nextToId, value)

通過您在for中顯示的代碼,我了解到 result 的值具有與此類似的結構

const result = [
  {
    id: 1,
    poster: "user 1",
    message_text: "message 1",
    post_type: "post",
    reply_to: "***",
  },
  {
    id: 2,
    poster: "user 2",
    message_text: "message 2",
    post_type: "post",
    reply_to: "***",
  },
  {
    id: 3,
    poster: "user 3",
    message_text: "message 3",
    post_type: "post",
    reply_to: "***",
  },
  {
    id: 4,
    poster: "user 4",
    message_text: "message 4",
    post_type: "post",
    reply_to: "***",
  },
];

如果是這種情況,您可以使用map ,通過數組的每個元素到 go 並根據您在代碼中描述的要求對其進行轉換。 請看下面的例子

 const result = [ { id: 1, poster: "user 1", message_text: "message 1", post_type: "post", reply_to: "***", }, { id: 2, poster: "user 2", message_text: "message 2", post_type: "post", reply_to: "***", }, { id: 3, poster: "user 3", message_text: "message 3", post_type: "post", reply_to: "***", }, { id: 4, poster: "user 4", message_text: "message 4", post_type: "post", reply_to: "***", }, ]; const output = result.map((entry) => ({ p: "1.jpg", s: 0, u: entry.poster, id: entry.id, m: entry.message_text, })); console.log(output);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM