当前位置: 首页 > 知识库问答 >
问题:

如何获得BigQuery表中json数组中对象数量的计数?

潘辰龙
2023-03-14

我在BigQuery中查询一个表,该表具有列id(integer)和user_json(string)。user_json是一个结构如下的json数组:{“user_id”:“123456”,“is_deleted”:false,“address_book”:{“uaddr_qi6vcz3a”:{“city”:“nowhere”,“state”:“ca”,“last_name”:“smith”,“first_name”:“john”,“postal_code”:“john”,“iso2_country”:“美国”,“phone_number”:“1234567809”,“address_line_1”:“123”uaddr_qi6vcz3a“},”uaddr_hzxdzooe“:{”城市“:”某处“,”州“:”nv“,”last_name“:”smith“,”first_name“:”john“,”postal_code“:”88888“,”iso2_country“:”美国“,”phone_number“:”9087654321“,”address_line_1“:”321 Fall blvd“,”address_book_item_id“:”uaddr_hzxdzooe“}}}

我需要找到每个ID的地址号。“uaddr_xxxx”对于每个“address_book”条目都是唯一的。我希望能够计算每个唯一的IDuser_json中有多少“UADDR_XXXX”。

共有1个答案

茅昀
2023-03-14

考虑以下方法

select id,
  array_length(regexp_extract_all(user_json, r'"(uaddr_[^"]+)":')) uaddr_count,
  regexp_extract_all(user_json, r'"(uaddr_[^"]+)":') uaddr_items
from `project.dataset.table`    

如果应用于问题中的示例数据,则输出为

 类似资料:
  • 问题内容: 我有以下JSON对象: 这是来自一个请求,我有成功。 问题是,即使dataJS在控制台中正确显示,我也无法访问JSON对象中的项目。有想法吗? 问题答案: 那是因为您的基础对象也是数组。 我怀疑那会有用

  • 在JMeter中,我想检查从服务器接收到的JSON数组中的对象数。 例如,在一个特定的请求中,我期望一个包含5个对象的数组。 [{...},{...},{...},{...},{...}] 读完这个:使用jsonpath?计数成员后,我尝试使用以下JSON路径断言: JSON路径:$ 然而,这似乎没有正常工作。当我真的在数组中收到5个对象时,响应断言说它不匹配。 我做错了什么?或者我还能怎么做?

  • 我正在尝试使用这些数据 https://api.nasa.gov/neo/rest/v1/neo/browse?api_key=demo_key 我成功地检索到了数据的“links”和“page”部分,但near_earth_objects数组为NULL。 我尝试了这篇文章中的建议: 使用Spring RestTemplate获取JSON对象列表 顶部答案给出错误: 下面是我的POJO的样子: 我

  • 我有一个类来代表一个玩家的手牌。但是,我(在另一个类中)有一个数组列表,我想在其中表示一堆玩家手。问题是我不知道如何在多手牌的数组列表中将一张牌添加到手牌中。我有一个代表卡牌和一副牌的类,效果很好。我只是试图了解如何将对象添加到数组列表中的对象。谢谢!

  • 问题内容: 我有一个JSON数组,我想根据名称和字母顺序对其进行排序。我的Json如下。 如您所见,我有一个键值“名称”,因此我得到了尊敬的名称。我想完全基于该名称对Json数组进行排序,并且也按字母顺序排序。 问题答案: 转换为并使用集合对您的数组列表进行排序 例如 :

  • 我知道如何在不使用parsejson的情况下使用reverfit和迭代数组来获取对象,但我不能这样做,因为这部分是用reverfit和gson自动完成的。 我在这个问题上已经困了一段时间了,如果你能给我指点,我会非常感激的。 更新: