2016-08-20 17 views
0

C#プログラミング言語を使用してこのコードのアドレス項目を取得する方法。私はNewstonsoft.Json.JsonConvert.DeserializeObject(Headerdata)を使用しています。 しかし、それはエラーです。オブジェクトリテラルのjavascriptを共通言語に変換するC#

<script> 
 
    var Headerdata = { 
 
    config : { debug : false } 
 
    data :{ 
 
      "UserData" : {"Name":"Mahtub","server":" mainSever", "isAdmin":true }, 
 
      "mainData" : { 
 
      "id": 02134346546 , 
 
      "unitData" :{ 
 
       "units" :6, 
 
       "pageData":{ 
 
       "UserName":"Admin", 
 
        "Address":[ 
 
        "city":"eastJava", 
 
        "country":"Indonesia" 
 
        ] 
 
       } 
 
      } 
 
     } 
 
    
 
    } 
 
    } 
 
</script>

+0

オブジェクトを配列として使用しようとしていますが、オブジェクトとして配列をフォーマットすることはできません。 – Script47

+0

何のエラーがありましたか? – DWright

+0

Newtonsoft.Json.JsonReaderException:値の解析中に予期しない文字が検出されました:<。パス ''、0行目、0桁目。 ユニットテストを実行するとどうなりますか? –

答えて

0

それが有効なJSONではありません(またそれが有効なオブジェクト構造でもある)ので、あなたは、このオブジェクトでエラーのINCREDIBLE数を持っています。すぐに最初のJSONにそれをシリアライズすることなく、オブジェクトを解析するためには、次のように更新する必要があります:すべてのキー名が適切に二重引用符で囲まれていることを

{ 
    "config": { 
     "debug": false 
    }, 
    "data": { 
     "UserData": { 
      "Name": "Mahtub", 
      "server": " mainSever", 
      "isAdmin": true 
     }, 
     "mainData": { 
      "id": "02134346546", 
      "unitData": { 
       "units": 6, 
       "pageData": { 
        "UserName": "Admin", 
        "Address": [{ 
         "city": "eastJava", 
         "country": "Indonesia" 
        }] 
       } 
      } 
     } 
    } 
} 

注意を、カンマを設定した後に追加されましたオブジェクトであり、 "Address"は単なる配列ではなく、配列内のオブジェクトになりました。

デシリアライズするオブジェクトを構築するときは、適切なシリアライザで常にシリアル化する必要があります。あなたは手でそれを構築すべきではありません。また、正しく構造化されていることを確認するには、常にJSON validatorを使用する必要があります。

+0

Oh No.あなたのコードが正しくないので、コード –

+0

@ R.Mahtubを変更しました。適切にフォーマットされていないものを逆シリアル化することはできません。それは簡単です。 –

+0

javascriptはjsonではありません。実際に私はコードと混同しています。それはjsonではなかったので –

関連する問題