2017-02-09 9 views
2

jsonの内容を解析するための、軽量、好ましくは純粋なluaライブラリがありますか?基本的には、私はRedisから取得しているjsonオブジェクトからの情報をverfiyする必要があるluaモジュールで、自分のngnixを増やしたいと考えています。ルアでjsonを解析するには?

オブジェクトは、次のように次のようになります。私のLuaのコードで

{ 
    "data": { 
    "user": { 
     "username": "username", 
     "type": "TYPE" 
    } 
    }, 
    "passport": { 
    "user": "uuid" 
    }, 
} 

を、私はdata.user.usernameが存在するかどうかを確認する必要があります。その後、nginxにリダイレクトを継続させることができます。誰も私にどのように達成することができるかの例を教えてもらえますか?

+0

好きなライブラリを選ぶだけで簡単に答えられます。その多くは:) – moteus

+1

[1](http://lua-users.org/wiki/JsonModules)、[2](https://github.com/Egor-Skriptunoff/json4lua) –

答えて

1

この形式のJSONデータは、Luaテーブルに非常に近いです。したがって、JSONデータを信頼する場合は、JSONデータをLuaコードに変換して実行することができます。

J=[[ 
{ 
    "data": { 
    "user": { 
     "username": "username", 
     "type": "TYPE" 
    } 
    }, 
    "passport": { 
    "user": "uuid" 
    }, 
} 
]] 
L="return "..J:gsub('("[^"]-"):','[%1]=') 
T=loadstring(L)() 
print(T.data.user.username) 

JSONデータについての良心の呵責を持っている場合は、サンドボックス内でL内の文字列を実行することをお勧めします。

+0

なぜロードロードを使用しますか? – warspyking

+0

@warspyking、Luaがコードを解析できるようにする。 – lhf

+1

@warspyking "純粋なルア"の方法の中で、これはほぼ確実に最速です。そしてそれは[安全な方法で]行うことができます(http://stackoverflow.com/a/41945465/805875)。 (Luaパーサーには本当に醜いバグがあるのでない限り、そうは思われません)。未知の(そしてかなり悪質な)データにさらされたWeb APIと、ローカルに実行されている他の信頼できるツールから生成されたデータをすばやく読み込むためのツール(_that_ツールが 'net'とインターフェースしている場合でも)。 – nobody