Прежде всего, мои извинения, если этот вопрос был задан ранее. Я искал часы, но не смог найти окончательного ответа.

В настоящее время я работаю над расширением Google Chrome, и всякий раз, когда его использует новый пользователь Chrome (который вошел в систему), я хочу, чтобы адрес электронной почты этого пользователя регистрировался в файле JSON, который (на данный момент — для целей тестирования) реальных учетных записей не будет. используется) размещено на http://myjson.com .

Для получения учетной записи Google пользователя я использую chrome.identity. Это работает очень хорошо. Моя проблема в том, что я не могу найти способ:

  • Поиск в онлайн-формате JSON, если пользователь уже существует, без извлечения всего этого в виде строки / объекта JSON
  • Добавьте нового пользователя в JSON, опять же не извлекая весь объект, добавляя его локально, а затем перезаписывая существующий.

Это мой код прямо сейчас. Что он делает, это просто извлекает весь JSON, меняет то, что я хочу, локально, а затем в основном перезаписывает его. Что не то, что я хочу.

function readApi(){ if($.isEmptyObject(userObj)) { chrome.identity.getProfileUserInfo(function(userInfo) { userObj = {id: userInfo.id, email: userInfo.email}; }); } async function loadJson(url) { // (1) let response = await fetch(url); // (2) if (response.status === 200) { return await response.json(); // (3) } throw new Error(response.status.toString()); } loadJson('the_url_from_myjson') .then((value) ={amp}gt; { const userInJSON = value.users.find( user ={amp}gt; user.id === userObj.id); console.log(value); if(!userInJSON) { let users = value.users; users.push(userObj); value.users = users; $.ajax({ url: 'the_url_from_myjson', type: "PUT", data: JSON.stringify(value), contentType: "application/json; charset=utf-8", dataType: "json", success: function (data, textStatus, jqXHR) { let json = JSON.stringify(data); } }) } }) .catch(alert); // Error: 404 (4) setTimeout(readApi, 5000); }readApi(); 

Любая помощь будет оценена.