This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема JSON.parse возвращает [object Object]

hun1yy

Новый участник
2 Авг 2022
248
3
33
Всем привет, у меня возникла проблема : функция JSON.parse возвращает Object
JSON:
[object Object]
на сервере всё хорошо, а на клиенте возвращает object
 
Последнее редактирование:

kcomba

Активный участник
9 Янв 2022
101
33
50
Если я не ошибаюсь, клиент<->CEF не может передавать объект, только стринг.
 

hun1yy

Новый участник
2 Авг 2022
248
3
33
CEF :
JavaScript:
function loadCarList(){
  mp.trigger('log2',cars);
}
function setCarList(list){
  // cars = JSON.stringify(list);
  document.querySelector("#inf").innerHTML = "DD";
  mp.trigger('log2',JSON.parse(list));
  document.querySelector("#inf").innerHTML = JSON.parse(list);
  cars = JSON.parse(list);
  loadCarList();
}
CLIENT :
JavaScript:
mp.events.add('showParking',() => {
  parking = mp.browsers.new('package://cef/parking/index.html');
  parking.active = true;
  hud.active = false;
  setTimeout(() => {
    useBinds = false;
    parking.execute(`setCarList(${JSON.stringify(mp.players.local.getVariable('cars'))});`);
  },500);
  mp.gui.cursor.show(true,true);
  mp.players.local.freezePosition(true);
  mp.game.controls.disableAllControlActions(2);
  mp.gui.chat.activate(false);
});
 

dooj

Гуру
FrontEnd developer
24 Мар 2022
480
133
120
Не используй execute, юзай просто call.

CLIENT

JavaScript:
mp.events.add('showParking',() => {
  parking = mp.browsers.new('package://cef/parking/index.html');
  parking.active = true;
  hud.active = false;
  setTimeout(() => {
    useBinds = false;
    parking.call('update:cars:cef', JSON.stringify(mp.players.local.getVariable('cars')))
  },500);
  mp.gui.cursor.show(true,true);
  mp.players.local.freezePosition(true);
  mp.game.controls.disableAllControlActions(2);
  mp.gui.chat.activate(false);
});

А на CEF принимай через ивент

CEF

JavaScript:
let cars

function loadCarList(){
  mp.trigger('log2',cars);
}

function setCarList(list){
  document.querySelector("#inf").innerHTML = "DD";
  mp.trigger('log2', list);
  document.querySelector("#inf").innerHTML = list; // если у тебя тут объект, то он не вставится просто так.
  cars = list;
  loadCarList();
}

mp.events.add('update:cars:cef', (cars) => {
    cars = JSON.parse(cars)
    
    setCarList(cars)
})

Вот, код гребсти не стал, изменил функции.
 

hun1yy

Новый участник
2 Авг 2022
248
3
33
не помогло (
 

kcomba

Активный участник
9 Янв 2022
101
33
50
Код:
parking.execute(`setCarList("${JSON.stringify(mp.players.local.getVariable('cars'))}");`);
Обращайся
 

hun1yy

Новый участник
2 Авг 2022
248
3
33
ничего не выходит, помогите кто сможет
 

UchihaMadara

Старожил
FrontEnd developer
27 Окт 2020
572
212
121
А что должен возвращать метод parse, если не объект???????
 
Реакции: Inoi

dooj

Гуру
FrontEnd developer
24 Мар 2022
480
133
120