2017-12-16 13 views
-1

文字列を使用してデータ型間を変換できますか?私は次のJSONを受け取るAzure関数を書いています。文字列を使用してデータ型間を変換できますか?

{ 
    "data": "1", 
    "type": "int" 
} 

そして、私はintとして "1"を返します。私は、これまで行ってきた:

dynamic body = await req.Content.ReadAsStringAsync(); 
Data data = JsonConvert.DeserializeObject<Data>(body as string); 

データクラス:

public class Data 
{ 
    public string data { get; set; }, 
    public string type { get; set; } 
} 

ありがとうございました。あなたの"type"

+0

'dynamic'は必要ありません。' ReadAsStringAsync'は文字列を返します。 – Crowcoder

+0

ありがとう、私はそれを知らなかった。 – FXux

+0

なぜ賛成投票ですか? – FXux

答えて

1

、あなたは完全修飾.NETタイプ名を使用する必要があります。

例:

System.Int32 

あなたがこれをしたら、Type

Data data = JsonConvert.DeserializeObject<Data>(body as string);  
Type myType = Type.GetType(data.type); 
var item = Convert.ChangeType(data.data, myType); 
Console.WriteLine(item); 
Console.WriteLine(item.GetType()); 
に変換するには、次の方法を使用します
+0

data.typeは常に文字列になるので、これは常に文字列を取得しませんか? – FXux

+0

'data.type =" System.Int32 "'のとき、 'item'は' Int32'型になります。投稿する前にコードをテストしました – Sunil

+0

申し訳ありませんが、私は携帯電話です。私が家に帰ると、私はあなたの答えを試して受け入れます。 – FXux