Member 3564076 Ответов: 1

Как удалить из строки и одинарные кавычки тоже( объекты JSON, закодированные )


В приведенном ниже JSON-файле есть строка b', а последняя строка имеет одинарные кавычки.

b'{ "boardMembers": [{ "id": "7394026", "name": "Stephen Joseph Squeri", "slug": "7394026-stephen-joseph-squeri", "companyName": "American Express Co", "company": { "id": "AXP:US", "name": "American Express Co" }, "webVisibility": true }, { "id": "3994082", "name": "Ronald A Williams \"Ron\"", "slug": "3994082-ronald-a-williams-\"ron\"", "companyName": null, "company": null, "webVisibility": false }, { "id": "1439479", "name": "Theodore J. Leonsis", "slug": "1439479-theodore-j-leonsis", "companyName": "Monumental Sports & Entertainment", "company": null, "webVisibility": true }, { "id": "1499616", "name": "John Joseph Brennan \"Jack\"", "slug": "1499616-john-joseph-brennan", "companyName": "Vanguard Charitable Endowment", "company": null, "webVisibility": true }, { "id": "1501790", "name": "Dr Daniel L Vasella \"Dan\"", "slug": "1501790-dr-daniel-l-vasella-\"dan\"", "companyName": null, "company": null, "webVisibility": false }, { "id": "1512919", "name": "Anne Lauvergeon", "slug": "1512919-anne-lauvergeon", "companyName": null, "company": null, "webVisibility": false }, { "id": "1529307", "name": "Peter F Chernin", "slug": "1529307-peter-f-chernin", "companyName": "Chernin Group LLC/ The", "company": null, "webVisibility": true }, { "id": "1720518", "name": "Rafael De La Vega \"Ralph\"", "slug": "1720518-rafael-de-la-vega", "companyName": "Forte Capital Management LLC", "company": { "id": "0778486D:US", "name": "Forte Capital Management LLC/GA" }, "webVisibility": true }, { "id": "1805754", "name": "Michael O Leavitt \"Mike\"", "slug": "1805754-michael-o-leavitt", "companyName": "Leavitt Partners", "company": { "id": "0707795D:US", "name": "Leavitt Partners LLC" }, "webVisibility": true }, { "id": "1879736", "name": "Christopher D Young \"Chris\"", "slug": "1879736-christopher-d-young", "companyName": "Mcafee Inc", "company": null, "webVisibility": true }, { "id": "14003646", "name": "Charlene Barshefsky", "slug": "14003646-charlene-barshefsky", "companyName": "Wilmer Cutler Pickering Hale and Dorr LLP", "company": { "id": "1221L:US", "name": "Wilmer Cutler Pickering Hale and Dorr LLP" }, "webVisibility": true }, { "id": "17579429", "name": "Karen L Parkhill", "slug": "17579429-karen-l-parkhill", "companyName": "Medtronic PLC", "company": { "id": "MDT:US", "name": "Medtronic PLC" }, "webVisibility": true }, { "id": "21421355", "name": "Lynn A Pike", "slug": "21421355-lynn-a-pike", "companyName": null, "company": null, "webVisibility": false }], "totalBoardMembers": 13, "executives": [{ "id": "7394026", "name": "Stephen Joseph Squeri", "thumbnail": { "url": "https://assets.bwbx.io/images/users/iqjWHBFdfxIU/iNnVt_wW9y_A/v3/80x80.jpg", "alt": null }, "title": "Chairman/CEO", "slug": "7394026-stephen-joseph-squeri", "webVisibility": true }, { "id": "20887787", "name": "Dr Mohammed Badi", "thumbnail": null, "title": "Chief Strategy Officer", "slug": "20887787-mohammed-badi", "webVisibility": true }, { "id": "18706279", "name": "Monique R Herena", "thumbnail": null, "title": "Chief Colleague Experience Officer", "slug": "18706279-monique-r-herena", "webVisibility": true }, { "id": "19676689", "name": "Elizabeth Rutledge", "thumbnail": { "url": "https://assets.bwbx.io/images/users/iqjWHBFdfxIU/iABmk_sWUnY4/v3/80x80.png", "alt": null }, "title": "Chief Marketing Officer", "slug": "19676689-elizabeth-rutledge", "webVisibility": true }, { "id": "18784925", "name": "Tangela Richter", "thumbnail": { "url": "https://assets.bwbx.io/images/users/iqjWHBFdfxIU/iKYkW0FlMRW4/v3/80x80.png", "alt": null }, "title": "Chief Governance Ofcr/Secy", "slug": "18784925-tangela-richter", "webVisibility": true }, { "id": "15024090", "name": "Laureen E Seeger", "thumbnail": { "url": "https://assets.bwbx.io/images/users/iqjWHBFdfxIU/iiw0z.pdTRbE/v1/80x80.jpg", "alt": "LAUREEN E SEEGER" }, "title": "Chief Legal Officer", "slug": "15024090-laureen-e-seeger", "webVisibility": true }, { "id": "21336581", "name": "Jennifer Skyler", "thumbnail": null, "title": "Chief Corporate Affairs Officer", "slug": "21336581-jennifer-skyler", "webVisibility": true }, { "id": "19676686", "name": "Raymond Joabar", "thumbnail": null, "title": "Pres:Global Risk/CRO", "slug": "19676686-raymond-joabar", "webVisibility": true }, { "id": "15365626", "name": "Douglas E Buckminster", "thumbnail": null, "title": "Group Pres:Global Consumer", "slug": "15365626-douglas-e-buckminster", "webVisibility": true }, { "id": "16654781", "name": "Anna Marrs", "thumbnail": { "url": "https://assets.bwbx.io/images/users/iqjWHBFdfxIU/iNFzMiuYiRGY/v3/80x80.png", "alt": null }, "title": "Pres:Global Commercial Svcs", "slug": "16654781-anna-marrs", "webVisibility": true }, { "id": "16804630", "name": "Denise Pickett", "thumbnail": { "url": "https://assets.bwbx.io/images/users/iqjWHBFdfxIU/iReOY_ZB0dOI/v2/80x80.png", "alt": null }, "title": "Pres:Global Services Group", "slug": "16804630-denise-pickett", "webVisibility": true }, { "id": "6832356", "name": "Anre D Williams", "thumbnail": { "url": "https://assets.bwbx.io/images/users/iqjWHBFdfxIU/iJ5kSc7LL.3Y/v2/80x80.png", "alt": null }, "title": "Pres:Global Merchant & Network Svcs", "slug": "6832356-anre-d-williams", "webVisibility": true }, { "id": "3221610", "name": "Jeffrey C Campbell \"Jeff\"", "thumbnail": { "url": "https://assets.bwbx.io/images/users/iqjWHBFdfxIU/iV0fAS1rb10o/v1/80x80.jpg", "alt": "35000014" }, "title": "Exec VP/CFO", "slug": "3221610-jeffrey-c-campbell", "webVisibility": true }, { "id": "16733751", "name": "Marc D Gordon", "thumbnail": { "url": "https://assets.bwbx.io/images/users/iqjWHBFdfxIU/isa0AVbtpBaM/v3/80x80.jpg", "alt": null }, "title": "Exec VP/CIO", "slug": "16733751-marc-d-gordon", "webVisibility": true }, { "id": "21531045", "name": "Jessica Lieberman Quinn", "thumbnail": null, "title": "Exec VP/Controller", "slug": "21531045-jessica-lieberman-quinn", "webVisibility": true }, { "id": "19863566", "name": "Alan P Gallo", "thumbnail": { "url": "https://assets.bwbx.io/images/users/iqjWHBFdfxIU/i_G02QWHFys4/v3/80x80.jpg", "alt": null }, "title": "Exec VP:Internal Audit/Chief Audit Exec", "slug": "19863566-alan-p-gallo", "webVisibility": true }, { "id": "16310906", "name": "Vivian Zhou", "thumbnail": null, "title": "Senior VP/Head:Investor Relations", "slug": "16310906-vivian-zhou", "webVisibility": false }], "totalExecutives": 17 }'


Что я уже пробовал:

попробовал с помощью encode &decode..,


a = a.replace(/"/g, '"');
a = a.replace(/(?:\r\n|\r|\n)/g, '');
a = a.replace(/{/g,'{ ');
a = a.replace(/}/g,' }');
a = a.replace(/[']+/g, '');


var jsonobj = a;
document.body.innerHTML = `<p>${jsonobj}</p>`;

Richard MacCutchan

Вам было бы неплохо пойти к источнику этих данных и выяснить, как они их кодируют. Но это выглядит иначе, чем то, что вы опубликовали пару дней назад.

1 Ответов

Рейтинг:
5

OriginalGriff

Попробуй:

if (jsonString.startsWith("b'"))
    {
    jsonString = jsonString.substring(2);
    }
if (jsonString.endsWith("'"))
    {
    jsonString = jsonString.substring(0, jsonString.length - 1);
    }


Member 3564076

каким-то образом удалил б из первого пальца... используя --> jsonString = jsonString.substring(1);


Но все же ' ( одинарные кавычки ) идут в начале и в конце строки.


подобный этому..

'{ "boardMembers": [{ "id": "16178969", "name": "Jon E Mattson", "slug": "16178969-jon-e-mattson", "companyName": "Angelica Corp", "company": { "id": "3190818Q:US", "name": "RFID Corp" }, "webVisibility": true }, { "id": "1898012", "name": "Kelvin R Westbrook", "slug": "1898012-kelvin-r-westbrook", "companyName": "BJC Health System", "company": { "id": "9883313Z:US", "name": "BJC Health System" }, "webVisibility": true }, { "id": "3209660", "name": "E Daniel James \"Danny\"", "slug": "3209660-e-daniel-james", "companyName": "Trilantic Capital Partners", "company": null, "webVisibility": true }, { "id": "20489274", "name": "Lauren Krueger", "slug": "20489274-lauren-krueger", "companyName": null, "company": null, "webVisibility": false }], "totalBoardMembers": 4, "executives": [{ "id": "16178969", "name": "Jon E Mattson", "thumbnail": null, "title": "Chairman ", "slug": "16178969-jon-e-mattson", "webVisibility": true }, { "id": "4629463", "name": "Lewis R Belote III", "thumbnail": null, "title": "Chief Financial Officer", "slug": "4629463-lewis-r-belote", "webVisibility": true }, { "id": "6895041", "name": "Richard M Fiorillo", "thumbnail": null, "title": "Chief Information Officer", "slug": "6895041-richard-m-fiorillo", "webVisibility": true }, { "id": "18303271", "name": "Twyla Gray", "thumbnail": { "url": "https://assets.bwbx.io/images/users/iqjWHBFdfxIU/iORH0ilqf6W8/v2/80x80.jpg", "alt": null }, "title": "Senior VP:Central Region", "slug": "18303271-twyla-gray", "webVisibility": true }, { "id": "18303290", "name": "Leon Johnson", "thumbnail": null, "title": "Senior VP:Operational Resources", "slug": "18303290-leon-johnson", "webVisibility": true }, { "id": "16048899", "name": "Michael McEnaney \"Mike\"", "thumbnail": null, "title": "Senior VP:Sales & Marketing", "slug": "16048899-michael-mcenaney", "webVisibility": true }, { "id": "18303278", "name": "Frank Dargavage", "thumbnail": null, "title": "Senior VP:West Region", "slug": "18303278-frank-dargavage", "webVisibility": true }, { "id": "2428073", "name": "Steven L Frey \"Steve\"", "thumbnail": null, "title": "VP/General Counsel", "slug": "2428073-steven-l-frey", "webVisibility": true }], "totalExecutives": 8 }'

OriginalGriff

И почему ты так думаешь?
Прочтите код, который я написал ...

Member 3564076

Код совершенно прекрасен, но не знаю, почему "'" не удаляется из строки.

пробовал много альтернативных, а также, все имеющие ту же проблему и не могу удалить "'" из этой конкретной строки .. для других строк работают нормально.

Данная строка находится в кодировке('utf-8')..

Есть какая-нибудь помощь по этому поводу ?

OriginalGriff

Потому что ваш код:

jsonString = jsonString.substring(1);

удаляет только один символ ...

Member 3564076

пробовал со всем опубликованным кодом..

if (jsonString.startsWith("b'"))
{
jsonString = jsonString.substring(2);
}
если (jsonString.метода endswith("'"))
{
jsonString = jsonString.substring(0, jsonString.длина - 1);
}

он не смог соответствовать заданным критериям, хотя исходная строка имеет те же символы. Не знаю почему.

OriginalGriff

Убедитесь, что они действительно являются одиночными символами quoite - есть некоторые символы Unicode, которые очень похожи на них, но не имеют одинакового значения. Вы ищете символьное значение hex 0x27

Member 3564076

a = a.заменить(/["0x27]/g,")


заменяет - но требование пустое место

Member 3564076

похоже, та же проблема.

при попытке с помощью --- jsonString = jsonString.substring(2);

он заменяет 0x27 вместо b'

OriginalGriff

Затем вам нужно подробно взглянуть на свой источник JSON: предпочтительно в виде шестнадцатеричных байтов.
Посмотрите точно, что там находится, или используйте JS, чтобы найти первый "{" и удалить все, что было до него. То же самое с концом - найдите последний "}" и удалите все после него.

Member 3564076

Не могли бы вы, пожалуйста, помочь мне с кодом -> Найти "{" и удалить все, что было до него. То же самое с концом - найдите последний "}" и удалите все после него.

С уважением,
МЮ

OriginalGriff

Читать документацию:

https://www.w3schools.com/jsref/jsref_search.asp

Member 3564076

Спасибо,

а = а.подстрока (.помощи indexOf("{"));
remove_after= a.lastIndexOf("}");
a = a.substring(0, remove_after+1);

Получил его и работает...

OriginalGriff

Всегда пожалуйста!