GVKun编程网logo

什么是$$ hashKey添加到我的JSON.stringify结果中(hashset添加数据)

14

以上就是给各位分享什么是$$hashKey添加到我的JSON.stringify结果中,其中也会对hashset添加数据进行解释,同时本文还将给你拓展Golang中与map[string]interf

以上就是给各位分享什么是$$ hashKey添加到我的JSON.stringify结果中,其中也会对hashset添加数据进行解释,同时本文还将给你拓展Golang中与map [string] interface {}等效的JSON.stringify、j hashKey添加到我的JSON.stringify结果、javascript – JSON.stringify(参数)发生了什么?、javascript – 用方括号包围的JSON.stringify(数组)等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

什么是$$ hashKey添加到我的JSON.stringify结果中(hashset添加数据)

什么是$$ hashKey添加到我的JSON.stringify结果中(hashset添加数据)

我曾尝试在其文档的Mozilla JSON字符串化页面上以及在SO和Google上查看,但没有找到解释。我已经使用JSOn字符串化很多次了,但是从未遇到过这个结果

我有一个JSON对象数组

[    {        "param_2": "Description 1",        "param_0": "Name 1",        "param_1": "VERSION 1"    },    {        "param_2": "Description 2",        "param_0": "Name 2",        "param_1": "VERSION 2"    },    {        "param_2": "Description 3",        "param_0": "Name 3",        "param_1": "VERSION 3"    }]

附加到我的$scope并且为了将POST它们作为一个参数,我使用了JSON.stringify()方法,我得到了以下信息:

   [        {            "param_2": "Description 1",            "param_0": "Name 1",            "param_1": "VERSION 1",            "$$hashKey": "005"        },        {            "param_2": "Description 2",            "param_0": "Name 2",            "param_1": "VERSION 2",            "$$hashKey": "006"        },        {            "param_2": "Description 3",            "param_0": "Name 3",            "param_1": "VERSION 3",            "$$hashKey": "007"        }    ]

我只是想知道$$ hashkey到底是什么,因为我期望从stringify方法获得与以下类似的东西:

[    {        "1":{            "param_2": "Description 1",            "param_0": "Name 1",            "param_1": "VERSION 1"        },         "2":{            "param_2": "Description 2",            "param_0": "Name 2",            "param_1": "VERSION 2"        },         "3":{            "param_2": "Description 3",            "param_0": "Name 3",            "param_1": "VERSION 3"        }    }]

我不确定这是否是一个因素,但我正在使用 Angularjs 1.1.5, JQuery 1.8.2 and Spring 3.0.4 and Springsecurity 3.0.7 on the Server side

它不会给我造成任何问题,但我想知道导致该问题的原因和原因。 $$hashkey

答案1

小编典典

Angular添加了此功能来跟踪您的更改,因此它知道何时需要更新DOM。

如果您使用angular.toJson(obj)而不是JSON.stringify(obj)Angular,则会为您去除这些内部使用值。

另外,如果您更改重复表达式以使用track by {uniqueProperty}后缀,则Angular根本不需要添加$$hashKey。例如

<ul>    <li ng-repeat="link in navLinks track by link.href">        <a ng-href="link.href">{{link.title}}</a>    </li></ul>

只是永远记住,您需要“链接”。表达的一部分-我总是倾向于忘记这一点。只是track by href肯定不会工作。

Golang中与map [string] interface {}等效的JSON.stringify

Golang中与map [string] interface {}等效的JSON.stringify

https://play.golang.org/p/KeeU7eagWh6

将变量定义为结构,并标记每个字段应如何编组为json。 有一个忽略标记可用于忽略nil字段。请参阅提供的示例

由于OP提到他不能使用结构,所以另一种方法是递归遍历地图并删除值为零的条目。

https://play.golang.org/p/PWd9fpWrKZH

package main

import (
    "encoding/json"
    "fmt"
)


func main() {
    data := map[string]interface{}{
        "isvalid": true,"value": map[string]interface{}{"prop": nil},"prop": nil,}    
    final := removeNils(data)
    out,err := json.Marshal(final)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(out))
}

func removeNils(initialMap map[string]interface{}) map[string]interface{} {
    withoutNils := map[string]interface{}{}
    for key,value := range initialMap {
        _,ok := value.(map[string]interface{})
        if ok {
            value = removeNils(value.(map[string]interface{}))
            withoutNils[key] = value
            continue
        }
        if value != nil {
            withoutNils[key] = value
        }
    }
    return withoutNils
}

j hashKey添加到我的JSON.stringify结果

j hashKey添加到我的JSON.stringify结果

我试着看他们的文档的Mozilla JSON stringify页,以及这里的SO和谷歌,但没有发现任何解释。我使用JSOn stringify很多时间,但从来没有遇到这个结果

我有一个JSON对象数组

[
    {
        "param_2": "Description 1","param_0": "Name 1","param_1": "VERSION 1"
    },{
        "param_2": "Description 2","param_0": "Name 2","param_1": "VERSION 2"
    },{
        "param_2": "Description 3","param_0": "Name 3","param_1": "VERSION 3"
    }
]

附加到我的$范围和为了POST他们作为一个参数我使用JSON.stringify()方法,我得到以下:

[
        {
            "param_2": "Description 1","param_1": "VERSION 1","$$hashKey": "005"
        },{
            "param_2": "Description 2","param_1": "VERSION 2","$$hashKey": "006"
        },{
            "param_2": "Description 3","param_1": "VERSION 3","$$hashKey": "007"
        }
    ]

我只是好奇什么是什么是$$哈希键,因为我预计更类似于以下来自stringify方法的东西:

[
    {
        "1":{
            "param_2": "Description 1","param_1": "VERSION 1"
        },"2":{
            "param_2": "Description 2","param_1": "VERSION 2"
        },"3":{
            "param_2": "Description 3","param_1": "VERSION 3"
        }
    }
]

我不知道这是否是一个因素,但我在服务器端使用Angularjs 1.1.5,JQuery 1.8.2和Spring 3.0.4和Spring安全3.0.7

它不会导致我任何问题,但我想知道的$$哈希键的原因和原因

Angular添加了这个来跟踪你的更改,所以它知道什么时候需要更新DOM。

如果你使用angular.toJson(obj)而不是JSON.stringify(obj),Angular会剥离出这些内部使用的值。

此外,如果您更改重复表达式以使用{uniqueProperty}后缀的轨道,Angular将不必添加$$ hashKey。例如

<ul>
    <li ng-repeat="link in navLinks track by link.href">
        <a ng-href="link.href">{{link.title}}</a>
    </li>
</ul>

只要记住你需要“链接”。一部分的表达 – 我总是倾向于忘记。只跟踪href肯定不会工作。

javascript – JSON.stringify(参数)发生了什么?

javascript – JSON.stringify(参数)发生了什么?

为什么没有参数stringify到数组?

是否有一种不那么冗长的方式使参数stringify像一个数组?

function wtf(){
  console.log(JSON.stringify(arguments));
  // the ugly workaround
  console.log(JSON.stringify(Array.prototype.slice.call(arguments)));
}

wtf(1,2,3,4);
-->
{"0":1,"1":2,"2":3,"3":4}
[1,4]


wtf.apply(null,[1,4]);
-->
{"0":1,4]

http://jsfiddle.net/w7SQF/

这不仅仅是在控制台中观看.我们的想法是,字符串在ajax请求中使用,然后另一方解析它,并且想要一个数组,但却获得了其他东西.

最佳答案
这种情况正在发生,因为参数不是数组,而是array-like object.您的解决方法是将其转换为实际数组. JSON.stringify的行为与此处的设计相同,但它不是很直观.

javascript – 用方括号包围的JSON.stringify(数组)

javascript – 用方括号包围的JSON.stringify(数组)

我正在尝试将一个数据数组插入到sqlite数据库的多个列中,我得到它几乎使用它:
function InsertData(dbData){
  var valueArray = [],dataArray = [];
  var values = Object.keys(dbData);
  for(var key in values){
    valueArray[valueArray.length] = values[key];
    dataArray[dataArray.length] = dbData[values[key]];
  }
  console.log("INSERT INTO "+dbData.table+" ("+valueArray+") VALUES ("+JSON.stringify(dataArray)+")");
  dbData.database.serialize(function(){
    dbData.database.run("INSERT INTO "+dbData.table+" ("+valueArray+") VALUES ("+JSON.stringify(dataArray)+")");
  });
}

我的数据构造如下:

//app.js
function EventData(title,value,other){
  this.title = title;
  this.value = value;
  this.other = other;
}
EventData.prototype = new dbtools.DBData(usuevents,'event');
var thisEventData = new EventData('newData',4,2);

//dbtools.js
DBData = function(database,table){
  this.database = database;
  this.table = table;
};

console.log输出INSERT INTO事件(标题,值,其他)VALUES([“newData”,2])
我只需要删除[]方括号([“newData”,2]).
我该怎么做?此外,如果有更好的方法将数据插入sqlite即时通知建议.谢谢

解决方法

JSON.stringify(dataArray)将始终返回方括号,因为dataArray的类型为array.相反,您可以对数组的每个元素进行字符串化,然后用逗号分隔它们.
dataArray = dataArray.map(function(e){
  return JSON.stringify(e);
});

dataString = dataArray.join(",");

然后

["newData",2]

"newData",2

附录:请不要尝试手动替换()括号,因为可能有一天括号以字符串形式进入阵列.例如[“请参见参考文献[1]”,2]

关于什么是$$ hashKey添加到我的JSON.stringify结果中hashset添加数据的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Golang中与map [string] interface {}等效的JSON.stringify、j hashKey添加到我的JSON.stringify结果、javascript – JSON.stringify(参数)发生了什么?、javascript – 用方括号包围的JSON.stringify(数组)的相关知识,请在本站寻找。

本文标签: