如何从 n1ql 查询遍历 JSON 数组?

Iamasking88

所以我使用 couchbase 队列来排队我的信标信息。我正在尝试对我的 get 方法使用 n1ql 查询,但在获取所有信息时遇到问题。我意识到我只得到了第一个信标条目,因为 result.Rows 返回一个元素,一个 BeaconInfoN1ql 数组。我想遍历该数组并将每个添加到列表中。

try {
     var cluster = new Cluster(new ClientConfiguration());
     using (var bucket = cluster.OpenBucket("BeaconInfoN1ql"))
     {
         string query = "SELECT * FROM `BeaconInfoN1ql`";
         var queryRequest = new QueryRequest(query);
         var result = bucket.Query<dynamic>(queryRequest);
     foreach (var row in result.Rows)
      {

          int i = 0;
          var beacon = new Beacon()
          {
              SerialNumber = row.BeaconInfoN1ql[i].serialNumber,
              ReceivedDate = Convert.ToDateTime(row.BeaconInfoN1ql[i].receivedDate),
              ReceiverId = row.BeaconInfoN1ql[i].receiverId,
              Distance = Convert.ToDouble(row.BeaconInfoN1ql[i].distance),
              Rssi = Convert.ToInt32(row.BeaconInfoN1ql[i].rssi),
              NewDistance = Convert.ToDouble(row.BeaconInfoN1ql[i].newDistance),
              DistanceTesting = Convert.ToDouble(row.BeaconInfoN1ql[i].distanceTesting),
          };
          i++;
          _beaconsList.Add(beacon);
      }
 }
 return _beaconsList;

我的 result.Rows 看起来像这样

结果.Rows=

{{
"BeaconInfoN1ql": [
{
"distance": 2.2705747109792007,
"distanceTesting": 22,
"newDistance": 22,
"receivedDate": "0001-01-01T00:00:00",
"receiverId": "42008780c4b9b329",
"rssi": -73,
"serialNumber": "888"
},
{
"distance": 2.2705747109792007,
"distanceTesting": 22,
"newDistance": 22,
"receivedDate": "0001-01-01T00:00:00",
"receiverId": "42008780c4b9b329",
"rssi": -73,
"serialNumber": "888"
},
{
"distance": 2.2705747109792007,
"distanceTesting": 22,
"newDistance": 22,
"receivedDate": "0001-01-01T00:00:00",
"receiverId": "42008780c4b9b329",
"rssi": -73,
"serialNumber": "888"
},
{
"distance": 2.2705747109792007,
"distanceTesting": 22,
"newDistance": 22,
"receivedDate": "0001-01-01T00:00:00",
"receiverId": "42008780c4b9b329",
"rssi": -73,
"serialNumber": "888"
},
]
}}

我不确定如何使第二个 foreach/for 循环遍历所有键。

科林

对于迭代 JSON,我喜欢使用动态。下面是一个例子:

var result = new Result()
{
    Rows = @"{
        'BeaconInfoN1ql': [
            {
                 'distance': 2.2705747109792007,
                 'distanceTesting': 22,
                 'newDistance': 22,
                 'receivedDate': '0001-01-01T00:00:00',
                 'receiverId': '42008780c4b9b329',
                 'rssi': -73,
                 'serialNumber': '888'
            }
        ]
    }" //other entries omitted for brevity
};

dynamic parsedRows = JsonConvert.DeserializeObject(result.Rows);
foreach (var entry in parsedRows.BeaconInfoN1ql)
    Debug.Write(entry.distance);

注意:在我的示例中,我从您的输出中去掉了双花括号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

n1ql查询以更新json数据数组中的多个参数

来自分类Dev

n1ql查询以从参数值为null的数组中删除数据

来自分类Dev

在N1Ql Couchbase查询中将相似的键值分组到数组

来自分类Dev

Couchbase N1QL:对数组字段进行索引和查询

来自分类Dev

n1ql查询以从参数值为null的数组中删除数据

来自分类Dev

Couchbase N1QL:有关查询数组字段的问题

来自分类Dev

N1QL数组查询,用于检查内部元素的条件

来自分类Dev

在Couchbase或N1QL中,如何检查数组中的值是否匹配

来自分类Dev

如何获取特定格式的n1ql查询响应?

来自分类Dev

如何使用 N1ql 查询选择文档的子字段

来自分类Dev

如何遍历JSON数组?

来自分类Dev

如何遍历JSON数组?

来自分类Dev

Couchbase N1QL连接查询

来自分类Dev

如何在Couchbase服务器的N1QL中跟踪查询执行时间?

来自分类Dev

如何遍历多维JSON数组?

来自分类Dev

N1QL检查数组是否包含ID

来自分类Dev

N1QL:从数组中查找最新状态

来自分类Dev

想要使用N1QL更新JSON

来自分类Dev

Couchbase N1QL查询确实很慢

来自分类Dev

N1ql查询以处理日期时间方案

来自分类Dev

N1QL查询以选择Couchbae中的动态密钥

来自分类Dev

每个特定类型文档的N1QL查询计数

来自分类Dev

从Xampp中的Couchbase N1QL查询开始

来自分类Dev

Couchbase参数化的N1QL查询IN语句

来自分类Dev

如何从Powershell运行Couchbase N1QL命令

来自分类Dev

如何在JavaScript中遍历JSON数组

来自分类Dev

如何在jQuery中遍历json数组?

来自分类Dev

如何递归遍历json对象/数组

来自分类Dev

如何遍历JSON数组以获得键的值?