2013-11-29 2 views
0

Я прочитал много discutions и получил некоторые answers..but я все еще интересно, я могу иметь текст так:Текст JSON форматированием

ps:mandatory' child of Input command functions 
Properties 

ps:Source: 
    f47437 

ps:Created: 
    2010-09-03T11:38:02.629Z 

ps:ChangedBy: 
    F47437 

ps:Changed: 
    2011-09-07T07:51:10.864Z 

В задаче JSON format.The есть. что этот файл содержит десятки тысяч этого типа текста, и они похожи на семейство деревьев. И я хочу преобразовать его в JSON, сохраняя одну и ту же логику дерева. Спасибо и жаль, если есть другие обсуждения по этому поводу. Я просто хотел попросить о себе.

+0

Почему это связано как с Java, так и с Javascript? – turnt

+0

Потому что я делаю что-то вроде java для javascript-беседы, я удалю его, если это проблема? Потребуется много времени, чтобы объяснить, в чем заключается моя точно проблема ... теперь, когда форматирование - это все, что мне нужно. –

+0

Значит, вам нужна библиотека или что-то, что может создать хороший форматированный JSON? Если да, на каком языке вы программируете? – turnt

ответ

2

Вы имеете в виду это?

{ 
    "ps:mandatory": "Properties", 
    "ps:Source:": "f47437", 
    "ps:Created:": "2010-09-03T11:38:02.629Z", 
    "ps:ChangedBy:": "F47437", 
    "ps:Changed:": "2011-09-07T07:51:10.864Z" 
} 

Важно помнить, что JSON является неупорядоченным так что вы, скорее всего, потеряете порядок тегов при сохранении его в формате JSON. Если порядок важен, рассмотрите другой формат файла.


Следующий код превратит ваши данные в JSON. Компиляции и работы:

import org.json.*; 
public class CreateMyJSON 
{ 
    public static void main(String[] args) 
    { 
     String testData = "ps:mandatory\nProperties\n\nps:Source:\n f47437\n\nps:Created:\n 2010-09-03T11:38:02.629Z\n\nps:ChangedBy:\n F47437\n\nps:Changed:\n 2011-09-07T07:51:10.864Z\n\n"; 
     CreateMyJSON cmj = new CreateMyJSON(); 
     System.out.println(cmj.getJSONFromString(testData)); 
     } 

    public String getJSONFromString(String theData) 
    { 
     JSONObject jso = new JSONObject(); 
     //no error checking, but replacing double returns 
     //to make this simpler 
     String massagedData = theData.replaceAll("\n\n", "\n"); 
     String[] splits = massagedData.split("\n"); 
     for(int i = 0; i < splits.length; i++) 
     { 
      jso.put(splits[i].trim(), splits[++i].trim()); 
     } 

     return jso.toString(); 
    } 
} 
+0

Ну что-то вроде этого. Я должен сказать, что есть способ заказать формат JSON, есть много примеров, особенно с проектами hypertree.js, но мой файл очень большой. . И мне было любопытно, есть ли более простой способ разобрать его на JSON .., чтобы сделать это сейчас, я должен использовать регулярное выражение, шаблон и т. д. –

+0

Насколько велика «какая-то большая»? Если весь файл является таким же регулярным, как бит, который вы отправили в вашем примере, было бы тривиально преобразовать его в JSON, используя простые манипуляции с строкой Java, и даже если это несколько тысяч строк, он должен обрабатываться довольно быстро. – mttdbrd

+0

Можете ли вы дать мне более подробную информацию .. Каким образом это будет манипулировать строкой? Это регулярно, как и код ниже, и существует около 30 000 строк. –

Смежные вопросы