He estado perplejo en esto por un tiempo. Soy bastante nuevo en la aplicación de secuencias de comandos de Google y quería ver si hay una manera de hacer que esto suceda. Hasta ahora, he usado algunos métodos dentro de Google Sheet, pero parece que no funciona.
El siguiente código me da una salida de todos los datos, sin embargo, los datos que están anidados en data.custom_fields[x] tienen múltiples objetos separados por ",". Me gustaría poder filtrar las otras palabras clave y simplemente usar lo que esté dentro "display_value=" . El display_value= no siempre está en la misma área, por lo que debe realizar una búsqueda para ellos.
Supongo que aquí se usaría algún tipo de declaración If ...
Un ejemplo del objeto es:
{type=x, resource_subtype=x, created_by={name=x, gid=x, resource_type=x}, display_value=Cool Value, description=x, enabled=x, resource_type=custom_field, gid=x, enum_options=[x.lang.Object;x, enum_value={x}, name=x} También intenté split la función, pero no estoy seguro de cómo filtrar las palabras que necesito.
function Users() { var options = { "headers" : { "Authorization": "API Key here" } } var response = UrlFetchApp.fetch("URL here", options); var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheets = ss.getSheets(); var sheet = ss.getSheetByName("Tab Name here"); // specific sheet name getSheetByName(""); alternatively use ss.getActiveSheet() var dataAll = JSON.parse(response.getContentText()); // var dataSet = dataAll.data; // "data" is the key containing the relevant objects var rows = [], data; for (i = 0; i < dataSet.length; i++) { data = dataSet[i]; rows.push([ data.gid, data.name, data.permalink_url, data.due_on, data.custom_fields[1], data.custom_fields[2], data.custom_fields[4], data.custom_fields[5], data.custom_fields[6], data.custom_fields[7], data.custom_fields[8], data.custom_fields[9], ]); //your JSON entities here } // [row to start on], [column to start on], [number of rows], [number of entities] dataRange = sheet.getRange(2, 1, rows.length, 12); dataRange.setValues(rows);¡Gracias de antemano!
Si desea extraer display_value, intente
let myVal = myData.match(/(?<=display_value=)[^,]+/g)[0]Supongo que myData podría ser data.custom_fields[5], así que reemplácelo por
data.custom_fields[5].match(/(?<=display_value=)[^,]+/g)[0]Aunque aparecen separados por , 's, así es como se muestran en el registro. Debido a que está utilizando JSON.parse , está recibiendo/convirtiendo en un Objeto, no en una cadena.
Dado que data.custom_fields es una matriz de objetos, puede acceder a los valores de propiedad/clave como: data.custom_fields[x].display_value .
Aprende más: