Создание Json With '=' в нем [дубликат]

Объявление функции и выражение функции, присваиваемое переменной, ведут себя одинаково после установления привязки.

Однако существует , как и , когда объект функции фактически связан с его переменной. Это различие связано с механизмом, называемым изменением подъема в JavaScript.

В принципе, все объявления функций и объявления переменных поднимаются в начало функции в котором происходит объявление (поэтому мы говорим, что JavaScript имеет область функций ).

  • Когда объявление функции поднимается, тело функции «следует», поэтому, когда тело функции оценивается, переменная сразу будет привязана к объекту функции.
  • Когда объявление переменной вставлено, инициализация выполняет не , но «остается позади», , Переменная инициализируется в undefined в начале тела функции и будет присвоена значение в исходном месте в коде. (На самом деле ему будет присвоено значение в в каждом месте, где появляется объявление переменной с тем же именем.)

Порядок подъема также важен : объявления функций имеют приоритет над объявлениями переменных с тем же именем, а последнее объявление функции имеет приоритет над предыдущими объявлениями с таким же именем.

Некоторые примеры ...

var foo = 1;
function bar() {
  if (!foo) {
    var foo = 10 }
  return foo; }
bar() // 10

Переменная foo поднимается в начало функции, инициализируется на undefined, так что !foo является true, поэтому foo назначается 10. foo вне области bar не играет никакой роли и нетронутой.

function f() {
  return a; 
  function a() {return 1}; 
  var a = 4;
  function a() {return 2}}
f()() // 2

function f() {
  return a;
  var a = 4;
  function a() {return 1};
  function a() {return 2}}
f()() // 2

Объявление функций имеет приоритет над объявлениями переменных, а последнее объявление функции «прилипает».

function f() {
  var a = 4;
  function a() {return 1}; 
  function a() {return 2}; 
  return a; }
f() // 4

В этом примере инициализируется a с результатом функции от оценки объявления второй функции, а затем назначается 4.

var a = 1;
function b() {
  a = 10;
  return;
  function a() {}}
b();
a // 1

Здесь объявление функции сначала открывается, объявляя и инициализируя переменную a. Затем этой переменной присваивается 10. Другими словами: присваивание не присваивается внешней переменной a.

24
задан Fahad Ishaque 15 May 2013 в 08:11
поделиться

2 ответа

Знак = закодирован на \u003d.. Поэтому вам нужно использовать disableHtmlEscaping () .

Вы можете использовать

Gson gson = new GsonBuilder().disableHtmlEscaping().create();
String s2 = gson.toJson(hm.toString());

Для \/, обращающегося к проблеме \\/, решение

s2.replace("\\\\", "\\");
53
ответ дан Pang 21 August 2018 в 04:32
поделиться
  • 1
    Что насчет\n ?? Потому что\n также иногда добавляется в строку. – Bajrang Hudda 1 February 2018 в 12:20
  • 2
    @Bajarang Используйте как этот String base64EncodedData = Base64.encodeToString (data, Base64.NO_WRAP); – Pinkesh Darji 16 April 2018 в 12:25

Поскольку некоторым людям нравится nitpick, я добавлю ответ на вопрос (хотя он уже был дан ответ и выбран как правильный ответ) ...

Я согласен с выбранным ответом на этот вопрос, используйте следующий код:

Gson gson = new GsonBuilder().disableHtmlEscaping().create();
String s2 = gson.toJson(hm.toString());
s2.replace("\\\\", "\\");

@Bajrang Hudda спросил о\n ... Недавно я ударил этот вопрос ... Я смог его решить, используя:

Gson gson = new Gson();
String json = (gson.toJson(data)).replaceAll("\\\\n", "\\n");
-1
ответ дан Nicholas Panella 21 August 2018 в 04:32
поделиться
  • 1
    Насколько я понимаю, это не ответ на исходный вопрос. – anothernode 16 May 2018 в 15:22
  • 2
    @anothernode Я не мог добавить ответа к этому парню под вопросом, когда он был ниже 50 пунктов реплики ... Итак, я добавил еще один ответ здесь, подал в суд на меня. – Nicholas Panella 17 May 2018 в 15:50
  • 3
    Послушай, я просто дал тебе дружеский намек. Не нужно обижаться. И копирование и вставка чужого ответа в ваш ответ не делает ситуацию намного лучше. – anothernode 17 May 2018 в 16:14
Другие вопросы по тегам:

Похожие вопросы: