从JS中的JSON获取一级对象长度计数

时间:2019-03-02 01:22:26

标签: javascript json

我目前有一个像这样的字符串化JSON对象: (重要的是,这是我必须进行字符串化处理的对象,之后我需要长度计数)

我正在对返回result的数据库进行呼叫。 我想这样包装我的结果:var myData = JSON.stringify(result);

这将产生以下内容,但更多:

myData =   {
    "0":[{"id": 50, "product_id": 'blah blah', etc}, {"id": 52, "product_id": 'blah blah', etc}, {"id": 50, "product_id": 'blah blah', etc}],
    "1":[{"id": 50, "product_id": 'blah blah', etc}, {"id": 52, "product_id": 'blah blah', etc}, {"id": 50, "product_id": 'blah blah', etc}],
    "2":[{"id": 50, "product_id": 'blah blah', etc}, {"id": 52, "product_id": 'blah blah', etc}, {"id": 50, "product_id": 'blah blah', etc}]
}

我已经尝试了所有可以想到的方法来获取根级别的长度。在此示例中,将有3个。我需要知道长度,这样我就可以选择每个长度来遍历它。

我该怎么做?

我尝试过(var data in myData),而我尝试过Object.keys(myData).length

我已经在控制台上登录了Ojbect.keys(myData).length,结果是9234

我尝试过的所有方法似乎都没有效果。

2 个答案:

答案 0 :(得分:3)

猜猜我将其添加为答案:)

从服务器获取的数据为JSON格式,因为您使用JSON.stringify包装了该数据。现在,您需要先解析数据,然后才能进行大量处理。使用JSON.parse执行此操作:

const serverJSONResponse = getJSONFromServer();
const myData = JSON.parse(serverJSONResponse);
const length = Object.keys(myData).length;

请注意,有一些方法可以告诉您您在客户端上使用什么来发出请求,该响应将是JSON,然后它将自动为您调用JSON.parse,这样您就不需要了每次都手动进行。

答案 1 :(得分:1)

@Aspect @Component public class DaoAspect{ @Pointcut("within(com.xyz..dao.*)") public void allDao(){}; @Before("allDao") public void runAdvise(){ //some code } } 完美运行

Object.keys(myData).length)