2012-06-29 39 views
6

テキストファイルをJSON形式に変換することをおすすめしますか?テキストをJSONに変換

私は、次の形式のテキストの約500ビットのテキストファイルがあります。

"page1": { 
    "line1": "LINE1", 
    "line2": "LINE2", 
    "line3": "LINE3" 
}, 
"page2": { 
    "line1": "LINE1", 
    "line2": "LINE2", 
    "line3": "LINE3" 
} 
. 
. 
. 

アイデア:私はそうのように、JSONに変換したい

[number in brackets or astriek] 
[line1] 
[line2] 
[line3] 
[space] 
. 
. 
. 

を?

+0

どの言語でですか? Linuxのツールはありますか? –

+0

本当にどんな言語でも。 Unixツールとあなたのサービスで完全に動作するターミナル。 –

+0

結果ファイルがjsonではないことにご注意ください。最後には、少なくとも '{'と始めに ''が必要です。 –

答えて

2

私にとっては最も簡単なのは、Javaで行ってもよいし、行ってもかまいません。 Javaでは

  • あなたがnew BufferedWriter(new FileWriter(outputfilepath))
  • を作成読み
  • 中にHashMap<String,String>HashMapを埋めることができnew BufferedReader(new FileReader(file))
  • を使用してreadLineと行の後にファイルの行を読み取ることができますgsonを使用すると、

この:ゴーで

Gson gson = new Gson(); 
gson.toJson(myList, myFileOutputStreamWriter); 

あなたは外部のパッケージをインポートする必要はありません、Goが必要なものが含まれています。

これは(他のいくつかのエラーのテストが良いでしょう)のようになります。

package main 

import (
    "bufio" 
    "fmt" 
    "io" 
    "encoding/json" 
    "log" 
    "strings" 
    "os" 
) 

func main() { 
    myBigThing := make(map[string]map[string]string) 
    f, _ := os.Open("/home/dys/dev/go/src/tests/test.go") 
    r := bufio.NewReader(f) 
    var currentPage map[string]string 
    pageNum := 0 
    for { 
     line, err := r.ReadString('\n') 
     if err != nil { 
      if err != io.EOF { 
       log.Println("Error in parsing :", err) 
      } 
      break 
     } 
     if currentPage==nil { 
      currentPage = make(map[string]string) 
      myBigThing[fmt.Sprintf("page%d",pageNum)] = currentPage 
      pageNum++ 
     } else if line=="" { 
      currentPage = nil 
     } else { 
      tokens := strings.Split(line, ":") 
      if len(tokens)==2 { 
       currentPage[tokens[0]] = tokens[1] 
      } 
     }  
    } 
    f, err := os.Create("/home/dys/test.json") 
    if err != nil { 
     log.Println("Error :", err) 
     return 
    } 
    defer f.Close() 
    bout, _ := json.Marshal(myBigThing) 
    f.Write(bout) 
} 
+0

ありがとう!私はそれを試すつもりですが、すぐには分かりませんが、LinuxのBash、JS、Rubyのようなアイデアは、おそらく "どんな言葉"でもいいと思います。 –

+0

あなたは[Go](http://golang.org)を発見しますか? –

+0

:) 私はそうだと思います。 –

3

あなたはGelatinを使用することができます。

あなたは入力テキストを定義するために文法を使用します(前にやったことがない場合は少し難しいかもしれません)。次に、文章ファイルを使ってテキストファイルをGelatinで実行し、出力を指定します。

編集1:変換しようとしているもののスニペットを投稿すると便利です。テキストファイル内の必要なデータを持っている場合はVisual Studioの

を使用

+0

これは有望そうだ。ありがとう! –

0

、これが最良の選択肢となります。

のVisual Studio開き、[ファイル]メニューの下 - >新規 - >インストールの下 ファイルは、「ウェブ」オプションを持っている必要があります。ここにリストされている形式の1つにJSONがあります。

これを選択し、テキスト文書をVSにコピー&ペーストします。ファイルを保存します。ファイルはJSON形式です。

関連する問題