读取Json格式的配置文件

读取Json格式的配置文件,代码摘自百度UEditor的Config,简洁明了:

public static class Config
{
    private static JObject _JObjectItems;

    public static JObject JObjectItems
    {
        get
        {
            if (_JObjectItems == null)
            {
                _JObjectItems = ReadJson();
            }
            return _JObjectItems;
        }
    }

    private static JObject ReadJson()
    {
        string json = File.ReadAllText(HttpContext.Current.Server.MapPath("config.json"));

        return JObject.Parse(json);
    }

    public static int GetInt(string key)
    {
        return GetValue<int>(key);
    }

    public static string GetString(string key)
    {
        return GetValue<string>(key);
    }

    public static T GetValue<T>(string key)
    {
        return JObjectItems[key].Value<T>();
    }

    public static string[] GetStringList(string key)
    {
        return JObjectItems[key].Select(x => x.Value<string>()).ToArray();
    }
}

<think>我们正在处理用户关于“如何读取JSON文件”的查询。用户明确要求提供代码示例,并提到了几种编程语言(但主要引用集中在Python)。根据引用内容,我们可以提供Python的详细示例,并简要提及其他语言(如Qt/C++、Android/Kotlin)的示例。参考的引用内容:[^1]介绍了Python中读取JSON文件的基本概念和步骤。[^2]提供了Python读取JSON的代码片段和注意事项。[^3]给出了一个逐行读取JSON文件的Python示例(适用于每行一个JSON对象的情况)。[^4]展示了Qt(C++)中读取JSON文件的方法。[^5]提到了Android(Kotlin)中读写JSON文件的权限请求。由于用户主要要求是代码示例,并且引用的内容以Python为主,我们将重点放在Python上,同时根据引用提供其他语言的简要示例。步骤:1.Python读取JSON文件(标准方法)2.Python逐行读取JSON文件(针对特殊格式)3.其他语言(Qt/C++和Android/Kotlin)的简要示例注意:用户要求“如何用编程语言读取JSON文件”,所以我们需要提供多种语言的示例,但以Python为主。我们将按照以下结构回答:-介绍JSON文件的基本概念(简要)-重点讲解Python的两种常见读取方法(整体读取和逐行读取)-提供其他语言的示例(根据引用[4]和[5]提供线索)同时,生成相关问题。</think>### 如何读取JSON格式文件(代码示例) JSON(JavaScript Object Notation)是一种轻量级数据交换格式,广泛应用于配置文件和数据传输。以下是不同编程语言的JSON文件读取方法及示例: --- #### **Python 读取 JSON 文件** ```python import json # 1. 从文件读取JSON with open('data.json', 'r', encoding='utf-8') as f: data = json.load(f) # 解析为Python字典/列表 # 访问数据 print(data['name']) # 输出:张三 print(data['hobbies'][0]) # 输出:编程 # 2. 从字符串读取JSON json_str = '{"name": "李四", "age": 30}' data_str = json.loads(json_str) # 解析字符串 ``` **注意事项**: 1. 文件路径需正确,否则引发 `FileNotFoundError` 2. JSON格式必须合法,否则引发 `json.JSONDecodeError` 3. 大文件建议逐行读取(见下方示例)[^2][^3] --- #### **Python 逐行读取大型JSON文件** 适用于每行一个JSON对象的文件(如日志): ```python import json with open('large_data.log', 'r') as f: for line in f: try: item = json.loads(line) # 解析单行JSON print(item['_id'], item['name']) except json.JSONDecodeError as e: print("解析错误:", e) ``` --- #### **Qt/C++ 读取 JSON 文件** ```cpp #include <QFile> #include <QJsonDocument> #include <QJsonObject> QFile file("data.json"); file.open(QIODevice::ReadOnly); QByteArray jsonData = file.readAll(); QJsonParseError error; QJsonDocument doc = QJsonDocument::fromJson(jsonData, &error); if (error.error != QJsonParseError::NoError) { qDebug() << "JSON错误:" << error.errorString(); return; } QJsonObject obj = doc.object(); QString name = obj["name"].toString(); // 获取字段值 ``` --- #### **Android/Kotlin 读取 JSON 文件** ```kotlin val jsonFile = File(context.filesDir, "data.json") val jsonString = jsonFile.readText() val jsonObject = JSONObject(jsonString) // 解析为JSON对象 val name = jsonObject.getString("name") val age = jsonObject.getInt("age") // 注意:Android需动态申请存储权限[^5] ``` --- **关键点总结**: 1. **Python**:使用 `json.load()` 从文件读取,`json.loads()` 从字符串读取 2. **Qt**:通过 `QJsonDocument` 和 `QJsonObject` 解析 3. **Android**:用 `JSONObject` 解析文件内容,注意权限管理 4. **错误处理**:始终捕获格式错误和文件异常 > 示例数据 `data.json` 内容: > ```json > { > "name": "张三", > "age": 25, > "hobbies": ["编程", "阅读"] > } > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值