【问题标题】:Need assistance concatenating a string request together in JavaScript需要帮助在 JavaScript 中将字符串请求连接在一起
【发布时间】:2018-08-17 08:57:45
【问题描述】:

在 JavaScript 中,我正在向服务器发送 https 请求。我收到了我正在寻找的数据,但它是分批提供的。根据我请求的数据大小,可能来自 2-50 个不同的批次。我需要把它们放在一起,这样我就可以解析并从数组中提取我需要的数据。我收到的数据粘贴在下面。您可以看到在第一批的开头有一个日期和时间戳,在“行”之后有另一个:。这些是由我正在使用的调试器添加的,这就是我知道它们是分开的。我的问题是:

1) 我如何将字符串连接在一起

2) 获取数组以便我可以选择我想要的数据的最佳方法是什么?

2018 - 03 - 08 T21: 09: 18.913 Z f657fe40 - 2314 - 11e8 - 8273 - 19289 d6ed567 {
  "id": 12345678,
  "name": "Dummy sheet",
  "version": 1,
  "totalRowCount": 1,
  "accessLevel": "ADMIN",
  "effectiveAttachmentOptions": ["BOX_COM", "GOOGLE_DRIVE", "FILE", "EGNYTE", "ONEDRIVE", "DROPBOX", "EVERNOTE"],
  "ganttEnabled": false,
  "dependenciesEnabled": false,
  "resourceManagementEnabled": false,
  "cellImageUploadEnabled": true,
  "userSettings": {
    "criticalPathEnabled": false,
    "displaySummaryTasks": true
  },
  "permalink": "https://app.smartsheet.com/b/home?lx=rxeuvsB26BVmyEpa6OYxUA",
  "createdAt": "2018-03-06T14:29:32Z",
  "modifiedAt": "2018-03-06T14:51:59Z",
  "columns": [{
    "id": 3114821425096580,
    "index": 0,
    "title": "Primary Column",
    "type": "TEXT_NUMBER",
    "primary": true,
    "validation": false,
    "width": 150
  }, {
    "id": 7618421052467076,
    "index": 1,
    "title": "Column2",
    "type": "TEXT_NUMBER",
    "validation": false,
    "width": 150
  }, {
    "id": 1988921518253956,
    "index": 2,
    "title": "Column3",
    "type": "TEXT_NUMBER",
    "validation": false,
    "width": 150
  }, {
    "id": 6492521145624452,
    "index": 3,
    "title": "Column4",
    "type": "TEXT_NUMBER",
    "validation": false,
    "width": 150
  }, {
    "id": 4240721331939204,
    "index": 4,
    "title": "Column5",
    "type": "TEXT_NUMBER",
    "validation": false,
    "width": 150
  }, {
    "id": 8744320959309700,
    "index": 5,
    "title": "Column6",
    "type": "TEXT_NUMBER",
    "validation": false,
    "width": 150
  }],
  "rows": 2018 - 03 - 08 T21: 09: 18.932 Z f657fe40 - 2314 - 11e8 - 8273 - 19289 d6ed567[{
    "id": 573049024079748,
    "rowNumber": 1,
    "expanded": true,
    "createdAt": "2018-03-06T14:51:59Z",
    "modifiedAt": "2018-03-06T14:51:59Z",
    "cells": [{
      "columnId": 3114821425096580,
      "value": 123456.0,
      "displayValue": "$123,456.00"
    }, {
      "columnId": 7618421052467076
    }, {
      "columnId": 1988921518253956
    }, {
      "columnId": 6492521145624452
    }, {
      "columnId": 4240721331939204
    }, {
      "columnId": 8744320959309700
    }]
  }]
}

【问题讨论】:

  • Stack Overflow不是免费的代码编写服务。您应该尝试自己编写代码。在doing more research 之后,如果您有问题,您可以发布您尝试过的内容,并清楚地解释什么不起作用,并提供一个minimal reproducible example 。我建议阅读How to Ask 一个好问题和the perfect question。另外,请务必使用tour
  • 对不起,我不希望有人为我写代码。我正在寻求有关完成我正在尝试做的事情的方法的建议。
  • 您必须自己尝试。如果您遇到困难,请用您尝试过的内容以及它在哪里/为什么不起作用来更新您的问题。见minimal reproducible example

标签: javascript concatenation grouping


【解决方案1】:

很难从您的描述中看出您要连接哪些字符串——整个 JSON 块,还是来自 JSON 中的某些字符串?

我至少可以说连接字符串的一种有效方法是将它们全部推入一个数组,然后将join 数组推入一个字符串。

var builder = [];
builder.push(string1);
builder.push(string2);
builder.push(string3);
...
var result = builder.join('');

我也不确定你所说的“进入一个数组”到底是什么意思,但如果你说的是把一个字符串变成一个数组,每个字符作为一个单独的项目,string.split('') 会这样做.

【讨论】:

  • var req = https.request(options, function(res) { console.log('STATUS: ' + res.statusCode); console.log('HEADERS: ' + JSON.stringify(res .headers)); res.setEncoding('utf8'); res.on('data', function (load) { console.log(load); }); });这是我发出的请求。当数据“加载”返回时,几乎同时以块的形式返回,但延迟时间足够长,以至于当我开始处理时,它使用的是第二批而不是第一批。在其他语言中,我可以收集到一个分隔符,但不确定如何在 JS 中完成此操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
相关资源
最近更新 更多