示例#1
0
 def testEncodeValue(self):
     """ test encoding various values for use in GeoJSON strings """
     self.assertEqual(QgsJSONUtils.encodeValue(NULL), 'null')
     self.assertEqual(QgsJSONUtils.encodeValue(5), '5')
     self.assertEqual(QgsJSONUtils.encodeValue(5.9), '5.9')
     self.assertEqual(QgsJSONUtils.encodeValue(5999999999), '5999999999')
     self.assertEqual(QgsJSONUtils.encodeValue('string'), '"string"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\ning'), '"str\\ning"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\ring'), '"str\\ring"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\bing'), '"str\\bing"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\ting'), '"str\\ting"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\\ing'), '"str\\\\ing"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\\ning'), '"str\\\\ning"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\n\\\\ing'), '"str\\n\\\\\\\\ing"')
     self.assertEqual(QgsJSONUtils.encodeValue('str/ing'), '"str\\/ing"')
     self.assertEqual(QgsJSONUtils.encodeValue([5, 6]), '[5,6]')
     self.assertEqual(QgsJSONUtils.encodeValue(['a', 'b', 'c']), '["a","b","c"]')
     self.assertEqual(QgsJSONUtils.encodeValue(['a', 3, 'c']), '["a",3,"c"]')
     self.assertEqual(QgsJSONUtils.encodeValue(['a', 'c\nd']), '["a","c\\nd"]')
     self.assertEqual(QgsJSONUtils.encodeValue({'key': 'value', 'key2': 5}), '{"key":"value",\n"key2":5}')
     self.assertEqual(QgsJSONUtils.encodeValue({'key': [1, 2, 3], 'key2': {'nested': 'nested\\result'}}), '{"key":[1,2,3],\n"key2":{"nested":"nested\\\\result"}}')
示例#2
0
 def testEncodeValue(self):
     """ test encoding various values for use in GeoJSON strings """
     self.assertEqual(QgsJSONUtils.encodeValue(NULL), 'null')
     self.assertEqual(QgsJSONUtils.encodeValue(5), '5')
     self.assertEqual(QgsJSONUtils.encodeValue(5.9), '5.9')
     self.assertEqual(QgsJSONUtils.encodeValue(5999999999), '5999999999')
     self.assertEqual(QgsJSONUtils.encodeValue('string'), '"string"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\ning'), '"str\\ning"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\ring'), '"str\\ring"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\bing'), '"str\\bing"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\ting'), '"str\\ting"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\\ing'), '"str\\\\ing"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\\ning'), '"str\\\\ning"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\n\\\\ing'), '"str\\n\\\\\\\\ing"')
     self.assertEqual(QgsJSONUtils.encodeValue('str/ing'), '"str\\/ing"')
     self.assertEqual(QgsJSONUtils.encodeValue([5, 6]), '[5,6]')
     self.assertEqual(QgsJSONUtils.encodeValue(['a', 'b', 'c']), '["a","b","c"]')
     self.assertEqual(QgsJSONUtils.encodeValue(['a', 3, 'c']), '["a",3,"c"]')
     self.assertEqual(QgsJSONUtils.encodeValue(['a', 'c\nd']), '["a","c\\nd"]')
     self.assertEqual(QgsJSONUtils.encodeValue({'key': 'value', 'key2': 5}), '{"key":"value",\n"key2":5}')
     self.assertEqual(QgsJSONUtils.encodeValue({'key': [1, 2, 3], 'key2': {'nested': 'nested\\result'}}), '{"key":[1,2,3],\n"key2":{"nested":"nested\\\\result"}}')
示例#3
0
 def testEncodeValue(self):
     """ test encoding various values for use in GeoJSON strings """
     self.assertEqual(QgsJSONUtils.encodeValue(NULL), "null")
     self.assertEqual(QgsJSONUtils.encodeValue(5), "5")
     self.assertEqual(QgsJSONUtils.encodeValue(5.9), "5.9")
     self.assertEqual(QgsJSONUtils.encodeValue(5999999999), "5999999999")
     self.assertEqual(QgsJSONUtils.encodeValue("string"), '"string"')
     self.assertEqual(QgsJSONUtils.encodeValue("str\ning"), '"str\\ning"')
     self.assertEqual(QgsJSONUtils.encodeValue("str\ring"), '"str\\ring"')
     self.assertEqual(QgsJSONUtils.encodeValue("str\bing"), '"str\\bing"')
     self.assertEqual(QgsJSONUtils.encodeValue("str\ting"), '"str\\ting"')
     self.assertEqual(QgsJSONUtils.encodeValue("str\\ing"), '"str\\\\ing"')
     self.assertEqual(QgsJSONUtils.encodeValue("str\\ning"), '"str\\\\ning"')
     self.assertEqual(QgsJSONUtils.encodeValue("str\n\\\\ing"), '"str\\n\\\\\\\\ing"')
     self.assertEqual(QgsJSONUtils.encodeValue("str/ing"), '"str\\/ing"')
     self.assertEqual(QgsJSONUtils.encodeValue([5, 6]), "[5,6]")
     self.assertEqual(QgsJSONUtils.encodeValue(["a", "b", "c"]), '["a","b","c"]')
     self.assertEqual(QgsJSONUtils.encodeValue(["a", 3, "c"]), '["a",3,"c"]')
     self.assertEqual(QgsJSONUtils.encodeValue(["a", "c\nd"]), '["a","c\\nd"]')
     self.assertEqual(QgsJSONUtils.encodeValue({"key": "value", "key2": 5}), '{"key":"value",\n"key2":5}')
     self.assertEqual(
         QgsJSONUtils.encodeValue({"key": [1, 2, 3], "key2": {"nested": "nested\\result"}}),
         '{"key":[1,2,3],\n"key2":{"nested":"nested\\\\result"}}',
     )
示例#4
0
 def testEncodeValue(self):
     """ test encoding various values for use in GeoJSON strings """
     self.assertEqual(QgsJSONUtils.encodeValue(NULL), 'null')
     self.assertEqual(QgsJSONUtils.encodeValue(5), '5')
     self.assertEqual(QgsJSONUtils.encodeValue(5.9), '5.9')
     self.assertEqual(QgsJSONUtils.encodeValue(5999999999), '5999999999')
     self.assertEqual(QgsJSONUtils.encodeValue('string'), '"string"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\ning'), '"str\\ning"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\ring'), '"str\\ring"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\bing'), '"str\\bing"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\ting'), '"str\\ting"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\\ing'), '"str\\\\ing"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\\ning'),
                      '"str\\\\ning"')
     self.assertEqual(QgsJSONUtils.encodeValue('str\n\\\\ing'),
                      '"str\\n\\\\\\\\ing"')
     self.assertEqual(QgsJSONUtils.encodeValue('str/ing'), '"str\\/ing"')
     self.assertEqual(QgsJSONUtils.encodeValue([5, 6]), '[5,6]')
     self.assertEqual(QgsJSONUtils.encodeValue(['a', 'b', 'c']),
                      '["a","b","c"]')
     self.assertEqual(QgsJSONUtils.encodeValue(['a', 3, 'c']),
                      '["a",3,"c"]')
     self.assertEqual(QgsJSONUtils.encodeValue(['a', 'c\nd']),
                      '["a","c\\nd"]')
     # handle differences due to Qt5 version, where compact output now lacks \n
     enc_str = QgsJSONUtils.encodeValue({'key': 'value', 'key2': 5})
     self.assertTrue(enc_str == '{"key":"value",\n"key2":5}'
                     or enc_str == '{"key":"value","key2":5}')
     enc_str = QgsJSONUtils.encodeValue({
         'key': [1, 2, 3],
         'key2': {
             'nested': 'nested\\result'
         }
     })
     self.assertTrue(
         enc_str == '{"key":[1,2,3],\n"key2":{"nested":"nested\\\\result"}}'
         or enc_str
         == '{"key":[1,2,3],"key2":{"nested":"nested\\\\result"}}')
from qgis.utils import iface

geojson_contributors = os.path.join(
    os.path.dirname(QgsApplication.developersMapFilePath()),
    'contributors.json'
)
geojson_contributors_string = codecs.open(
    geojson_contributors,
    encoding='utf-8'
).read()

layer = iface.activeLayer()

# Encodes a value to a JSON string representation, adding appropriate
# quotations and escaping where required.
print(QgsJSONUtils.encodeValue([{"name": "George", "age": 34, "size": 1.69}]))

fields = QgsFields()
fields_list = [
    QgsField("name", QVariant.String),
    QgsField("age", QVariant.Int),
    QgsField("size", QVariant.Double)
]

for f in fields_list:
    fields.append(f)

feature = QgsFeature(fields)
feature.setGeometry(QgsGeometry.fromPoint(QgsPoint(60, 5)))
feature.setAttributes(["George", 34, 1.69])