导航

04-005 Configuration 之 JsonConfigurationSource

Posted on 2015-03-17 11:01  DotNet1010  阅读(602)  评论(0)    收藏  举报

部门代码:

                        // Values in key-value pairs
                        case JsonToken.Integer:
                        case JsonToken.Float:
                        case JsonToken.String:
                        case JsonToken.Boolean:
                        case JsonToken.Bytes:
                        case JsonToken.Raw:
                        case JsonToken.Null:
                            var key = GetKey(reader.Path);

                            if (data.ContainsKey(key))
                            {
                                throw new FormatException(Resources.FormatError_KeyIsDuplicated(key));
                            }
                            data[key] = reader.Value.ToString();
                            break;

 看一下单元测试的代码:

   public void LoadKeyValuePairsFromValidJson()
        {
            var json = @"
{
    'firstname': 'test',
    'test.last.name': 'last.name',
        'residential.address': {
            'street.name': 'Something street',
            'zipcode': '12345'
        }
}";
            var jsonConfigSrc = new JsonConfigurationSource(ArbitraryFilePath);

            jsonConfigSrc.Load(StringToStream(json));

            Assert.Equal(4, jsonConfigSrc.Data.Count);
            Assert.Equal("test", jsonConfigSrc.Data["firstname"]);
            Assert.Equal("last.name", jsonConfigSrc.Data["test.last.name"]);
            Assert.Equal("Something street", jsonConfigSrc.Data["residential.address:STREET.name"]);
            Assert.Equal("12345", jsonConfigSrc.Data["residential.address:zipcode"]);
        }