GVKun编程网logo

如何从 JavaScript 中的 json 脚本获取对象(js获取json对象的值)

1

这篇文章主要围绕如何从JavaScript中的json脚本获取对象和js获取json对象的值展开,旨在为您提供一份详细的参考资料。我们将全面介绍如何从JavaScript中的json脚本获取对象的优缺

这篇文章主要围绕如何从 JavaScript 中的 json 脚本获取对象js获取json对象的值展开,旨在为您提供一份详细的参考资料。我们将全面介绍如何从 JavaScript 中的 json 脚本获取对象的优缺点,解答js获取json对象的值的相关问题,同时也会为您带来Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用、Android - 封装 JSON 数据(JSON 对象 / JSON 数组)、Android Studio - 如何从 google-services.json 获取 Firebase URL?因为当我打开 google-services.json 时,firebase URL 没有代码、angular – 如何创建配置文件(tsconfig.json,typings.json,package.json)?的实用方法。

本文目录一览:

如何从 JavaScript 中的 json 脚本获取对象(js获取json对象的值)

如何从 JavaScript 中的 json 脚本获取对象(js获取json对象的值)

如何解决如何从 JavaScript 中的 json 脚本获取对象

我需要使用这个 json 脚本中的“选项”对象

有没有办法使用 jQuery 或 JavaScript 提取它?

解决方法

获取脚本标签的innerText,然后解析JSON。

var options = JSON.parse(document.querySelector(''script[data-drupal-selector="drupal-settings-json"]'').innerText);

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用

一、Json 的使用

我们上一篇讲述了 Json 的基本用法,我们还自己写了几个 Json。

我们在写的过程中不难发现,就是这个 \\ 这个转义符添加的问题,这要是让我们写上一个班级的学生数据,那就完蛋了,所以为了不让我们自己去一个一个写,我们引入两种常用的 Json 格式化的 工具

一个是谷歌公司推出的 Gson,还有一个是阿里巴巴推出的 Fastjson

这两个我们用那个都行,看自己选择,我先来说这个 Gson

在此之前,我们创建一个 Student 的类,我们一会要用~~

id 主键

name 姓名

createDt 创建日期

price 自己有多少钱

hobbies 爱好

自己再去添加一下 get/set 方法,还有构造、toString

二、Gson

首先,我们去 maven 仓库,把这个 Gson 的包给他下载下来,下载地址:https://mvnrepository.com/artifact/com.google.code.gson/gson/2.8.6

下载下来之后,我们放到我们之前的 AjaxHelloWorld 项目中

然后,我们来写一个 GsonTest。

首先,我们先实例化一个 Student 的集合,然后,给这个集合赋一些初始值,后面要用

然后我们来开始做操作

1. 实例化一个简单的 Json 对象

这里我们需要用到 Gson 给我们提供的 JsonObject 对象,我们用它来创建对象,然后调用 addProperty 方法,给这个对象添加键值对

这里注意一下,看清楚导入的包,我们使用的是 import com.google.gson.JsonObject; 运行一下

当然了,这里我们再来试试别的

注意,这里只能添加引用类型,不能添加基本数据类型的值!!

可以看到,我们又添加了一个 key 为 123 的对象,但是并没有显示,而是做了替换,这个就是我之前说的,同一个 key 不可能存在同一个层级下。

2. 实例化一个简单的 Json 数组

实例化 Json 数组,我们是使用的 Gson 给我们提供的 JsonArray,添加对象需要调用 add 方法,如下

然后我们创建两个 JsonObject 对象,存放到这个数组中

运行一下,看看输出什么

可以看到,是一个数组对象

3. 将 list 集合转换成 Json

我们再来写一个方法,将我们之前定义的 list 集合转换成我们的 Json,这里其实我们调用的是 Gson 提供的 toJson 方法,我们来看一下

我们运行一下,看看效果

是没有问题的,我们把结果复制到 Json 检查的网站去检测一下

也是没有问题的

这里我要说一下,这个 Gson 对象的 toJson 方法有很多重载方法,可以将很多种数据结构的对象转换成 Json 对象,大家可以自己去研究研究(集合都可以转换,更不要说单个对象什么的了)

4. 将 Json 转换成 Java 对象

我们将 Json 字符串 转换成 Java 对象,这里呢,我们用刚刚生成的 Json 来进行测试

这里呢,我们需要用到 Gson 给我们提供的 fromJson 方法,这个 fromJson 方法里面有很多的构造函数

可以看到,提供的很全哈,我们这里使用倒数第二个,这里还需要多加一个类的支持

还有一点,这里需要知道具体的 Json 对象的格式,不然会报错,一般情况下,我们都是知道这个格式,然后进行转换

我们把这个 Json 数组转换成 List 集合,然后进行遍历输出一下

是没有问题的啊,因为我们只有一个对象,所以只能遍历出一个,当然啊,这里字段需要对应,不对应也是没有办法将这些值赋值给我们的对象中的属性的

三、FastJson

其实,FastJson 和 Gson 非常类似,仅仅是调用的函数名称不同,参数不同点而已,其他的使用方式都是类似的,FastJson Maven 下载地址:https://mvnrepository.com/artifact/com.alibaba/fastjson/1.2.75

下载好同样扔到我们的项目中

这里我直接上代码了,不说那么多废话了

1. 创建普通 Json 对象

这里要注意一下,Gson 给我们提供的是 JsonObject,阿里的 FastJson 给我们提供的是 JSONObject 不一样啊,看清楚了~~

2. 创建 Json 数组

3. list 集合转换 Json

这里需要注意的是,JSONObject 这个对象使用 toJSON 方法后,返回的是一个 Object 对象,这个对象最好强转成 JSONArray,或者是 JSONObject 去接收

4. Json 字符串转换成对象

这里是因为 JSONObject 调用 parse 之后,返回的是一个 Object 对象,因为我知道他是什么类型的,所以我就使用 List 进行接收

 

总体来说,两个都功能差不多,性能方面,是 FastJson 更好,但是相比这样的强转,我更喜欢 Gson 的转换~,当然,具体使用什么,看你自己~

四、Json 和 Ajax 配合使用

这里我们用 Gson 来实现一下它俩的配合~

我们先来修改一下我们之前的那个 Servlet

我们使用 JsonObject 将 Json 返回到前端,前端我们不变,我们继续使用 index2.html 进行测试,启动服务器,我们看一下结果

是 OK 的啊。

我们接下来修改一下,我们使用 $.get 方式进行获取一下,我们再来复制一个 index3.html

从新启动一下服务器,我们再来看看能不能行

也是可以的

当然,POST 也是可以的

原因就是我们这里调用了 doGet 

 

Ajax 与 Json 就讲完了,希望大家可以好好学习理解他们,毕竟这玩意需要陪我们很久的

 

大家可以自己好好查查看,有不懂的可以联系我 QQ:2100363119

欢迎大家访问我的网站:https://www.lemon1234.com

可以的话关注一下我的公众号,就在我网站,每天都有更新~~~,无限资源畅游 Java,感谢~

最近小程序也开放了,大家可以扫码进行玩玩看

Android - 封装 JSON 数据(JSON 对象 / JSON 数组)

Android - 封装 JSON 数据(JSON 对象 / JSON 数组)

Android - 封装 JSON 数据(JSON 对象 / JSON 数组),一般情况下不会在 Android 端封装 JSON 的数据,因为封装 JSON 的数据是在服务器端进行封装了,Android 更多的工作是解析(JSON 对象 / JSON 数组)

 

而且在服务端封装 JSON 会更加简单灵活:

  例如:JsonTools.createJsonString ("persons", list);/JsonTools.createJsonString ("person", person);

 

而这篇博客是讲解在 Android - 封装 JSON 数据(JSON 对象 / JSON 数组),只为熟悉 JSON 数据格式真实开发中更多的是去解析 JSON 数据(JSON 对象 / JSON 数组)

 


 


注意:⚠ 千万不要 jsonObject.toString ()
否则会 在前面加 "后面也加" , 都在 json 数据有问题

package liudeli.mynetwork01;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.FileOutputStream;

public class MainActivity extends Activity {

    private final String TAG = MainActivity.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    /**
     * 封装JSON对象数据
     * {
     * "name":"李四",
     * "age":99,
     * "hobby":"爱好是练习截拳道"
     * }
     *
     * @param view
     */
    public void pottingJSON1(View view) {
        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("name", "李四");
            jsonObject.put("age", 99);
            jsonObject.put("hobby", "爱好是练习截拳道");
        } catch (JSONException e) {
            e.printStackTrace();
        } finally {
            Log.d(TAG, "jsonObject:" + jsonObject);
            saveJSONDataToFile("pottingJSON1", jsonObject);
        }

    }

    /**
     * 封装JSON对象-带Key(student)
     * {
     * "Student":{
     * "name":"李四",
     * "age":99,
     * "hobby":"爱好是练习截拳道"
     * }
     * }
     *
     * @param view
     */
    public void pottingJSON2(View view) {
        JSONObject jsonObjectALL = null;
        try {
            // student json 对象
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("name", "李四");
            jsonObject.put("age", 99);
            jsonObject.put("hobby", "爱好是练习截拳道");

            // 整个最大的 json 对象
            jsonObjectALL = new JSONObject();

            /**
             * 注意:⚠ 千万不要jsonObject.toString()
             * 否则会 在前面加"  后面也加"  , 都在json数据有问题
             */
            jsonObjectALL.put("student", jsonObject);

        } catch (JSONException e) {
            e.printStackTrace();
        } finally {
            Log.d(TAG, "jsonObjectALL:" + jsonObjectALL);
            saveJSONDataToFile("pottingJSON2", jsonObjectALL);
        }
    }

    /**
     * 封装JSON对象-嵌套对象
     * {
     *     "student":{
     *         "name":"李四",
     *         "age":99,
     *         "hobby":"爱好是练习截拳道",
     *         "dog":{
     *             "name":"阿黄",
     *             "age":"77",
     *             "sex":"母"
     *         }
     *     }
     * }
     * @param view
     */
    public void pottingJSON3(View view) {
        JSONObject jsonObjectALL = null;
        try {
            // dog json 对象
            JSONObject dogJSONObject = new JSONObject();
            dogJSONObject.put("name", "阿黄");
            dogJSONObject.put("age", 77);
            dogJSONObject.put("sex", "母");

            // student json 对象
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("name", "李四");
            jsonObject.put("age", 99);
            jsonObject.put("hobby", "爱好是练习截拳道");

            /**
             * 注意:⚠ 千万不要dogJSONObject.toString()
             * 否则会 在前面加"  后面也加"  , 都在json数据有问题
             */
            jsonObject.put("dog", dogJSONObject);

            // 整个最大的 json 对象
            jsonObjectALL = new JSONObject();

            /**
             * 注意:⚠ 千万不要jsonObject.toString()
             * 否则会 在前面加"  后面也加"  , 都在json数据有问题
             */
            jsonObjectALL.put("student", jsonObject);

        } catch (JSONException e) {
            e.printStackTrace();
        } finally {
            Log.d(TAG, "jsonObjectALL:" + jsonObjectALL);
            saveJSONDataToFile("pottingJSON3", jsonObjectALL);
        }
    }

    /**
     * 封装JSON数组
     * [
     *     {
     *         "name":"君君",
     *         "age":89,
     *         "sex":"男"
     *     },
     *     {
     *         "name":"小君",
     *         "age":99,
     *         "sex":"女"
     *     },
     *     {
     *         "name":"大君",
     *         "age":88,
     *         "sex":"男"
     *     }
     * ]
     */
    public void pottingJSONArray1(View view) {
        try {
            // 第一个JSON对象
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("name", "君君");
            jsonObject.put("age", 89);
            jsonObject.put("sex", "男");

            // 第二个JSON对象
            JSONObject jsonObject2 = new JSONObject();
            jsonObject2.put("name", "小君");
            jsonObject2.put("age", 99);
            jsonObject2.put("sex", "女");

            // 第三个JSON对象
            JSONObject jsonObject3 = new JSONObject();
            jsonObject3.put("name", "大君");
            jsonObject3.put("age", 88);
            jsonObject3.put("sex", "男");

            // 定义个JSON数组,把上面的三个JSON对象装进去
            JSONArray jsonArray = new JSONArray();
            jsonArray.put(0, jsonObject);
            jsonArray.put(1, jsonObject2);
            jsonArray.put(2, jsonObject3);

            Log.d(TAG, "jsonArray:" + jsonArray);
            saveJSONDataToFile("pottingJSONArray1", jsonArray);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 封装JSON数组-带Key
     * {
     *     "person":[
     *         {
     *             "name":"君君",
     *             "age":89,
     *             "sex":"男"
     *         },
     *         {
     *             "name":"小君",
     *             "age":99,
     *             "sex":"女"
     *         },
     *         {
     *             "name":"大君",
     *             "age":88,
     *             "sex":"男"
     *         }
     *     ]
     * }
     * @param view
     */
    public void pottingJSONArray2(View view) {
        try {
            // 第一个JSON对象
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("name", "君君");
            jsonObject.put("age", 89);
            jsonObject.put("sex", "男");

            // 第二个JSON对象
            JSONObject jsonObject2 = new JSONObject();
            jsonObject2.put("name", "小君");
            jsonObject2.put("age", 99);
            jsonObject2.put("sex", "女");

            // 第三个JSON对象
            JSONObject jsonObject3 = new JSONObject();
            jsonObject3.put("name", "大君");
            jsonObject3.put("age", 88);
            jsonObject3.put("sex", "男");

            // 定义个JSON数组,把上面的三个JSON对象装进去
            JSONArray jsonArray = new JSONArray();
            jsonArray.put(0, jsonObject);
            jsonArray.put(1, jsonObject2);
            jsonArray.put(2, jsonObject3);

            // 整个最大的 json 对象
            JSONObject jsonObjectAll = new JSONObject();
            // 把上面的JSON数组,装进去
            jsonObjectAll.put("person", jsonArray);

            Log.d(TAG, "jsonObjectAll:" + jsonObjectAll);
            saveJSONDataToFile("pottingJSONArray2", jsonObjectAll);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 保存JSON数据到文件
     */
    private void saveJSONDataToFile(String fileName, JSONObject jsonData) {
        try {
            FileOutputStream fos = openFileOutput(fileName,  Context.MODE_PRIVATE);
            fos.write(jsonData.toString().getBytes());
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 保存JSON数据到文件
     */
    private void saveJSONDataToFile(String fileName, JSONArray jsonData) {
        try {
            FileOutputStream fos = openFileOutput(fileName,  Context.MODE_PRIVATE);
            fos.write(jsonData.toString().getBytes());
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="封装JSON对象"
            android:onClick="pottingJSON1"
            android:layout_weight="1"
            />


        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="封装JSON对象-带Key"
            android:onClick="pottingJSON2"
            android:layout_weight="1"
            />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="封装JSON对象-嵌套对象"
            android:onClick="pottingJSON3"
            android:layout_weight="1"
            />


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="封装JSON数组"
            android:onClick="pottingJSONArray1"
            android:layout_weight="1"
            />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="封装JSON数组-带Key"
            android:onClick="pottingJSONArray2"
            android:layout_weight="1"
            />

    </LinearLayout>

</LinearLayout>

 

结果;

/data/data/liudeli.mynetwork01/files/pottingJSON1

{
    "name":"李四",
    "age":99,
    "hobby":"爱好是练习截拳道"
}

 

/data/data/liudeli.mynetwork01/files/pottingJSON2

{
    "student":{
        "name":"李四",
        "age":99,
        "hobby":"爱好是练习截拳道"
    }
}

 

/data/data/liudeli.mynetwork01/files/pottingJSON3

{
    "student":{
        "name":"李四",
        "age":99,
        "hobby":"爱好是练习截拳道",
        "dog":{
            "name":"阿黄",
            "age":77,
            "sex":"母"
        }
    }
}

 

/data/data/liudeli.mynetwork01/files/pottingJSONArray1

[
    {
        "name":"君君",
        "age":89,
        "sex":"男"
    },
    {
        "name":"小君",
        "age":99,
        "sex":"女"
    },
    {
        "name":"大君",
        "age":88,
        "sex":"男"
    }
]

 

/data/data/liudeli.mynetwork01/files/pottingJSONArray2

{
    "person":[
        {
            "name":"君君",
            "age":89,
            "sex":"男"
        },
        {
            "name":"小君",
            "age":99,
            "sex":"女"
        },
        {
            "name":"大君",
            "age":88,
            "sex":"男"
        }
    ]
}

 

Android Studio - 如何从 google-services.json 获取 Firebase URL?因为当我打开 google-services.json 时,firebase URL 没有代码

Android Studio - 如何从 google-services.json 获取 Firebase URL?因为当我打开 google-services.json 时,firebase URL 没有代码

如何解决Android Studio - 如何从 google-services.json 获取 Firebase URL?因为当我打开 google-services.json 时,firebase URL 没有代码

这是我第一次使用 Firebase,我刚刚从 youtube 上学到了一些东西,教程说我必须在 google-services.json 复制我的 Firebase URL。但是当我打开它时,没有任何引用 Firebase URL 的代码

This is mine google-services.json

This is tutorial video that I watch

解决方法

如果您正在研究如何将您的 android studio 项目与 firebase 连接,您可以按照此文档 here 进行操作。

将您的项目直接连接到 firebase 非常简单,无需使用 android studio 复制粘贴 URL。此外,您要查找的 URL 可能会在您连接 Firebase 后生成。

,

实际上,我认为您必须从 Google Firebase 实时数据库中复制 URL 代码,而不是从 json 文件中复制。您必须通过路径从您的项目中复制:

google firebase -> 你的项目 -> 实时数据库 -> 数据 -> https 链接 (https://fir-model (...))

您必须复制并粘贴:

mR = new Firebase("paste URL");

之前你应该已经声明了一个变量 mR,例如:

private Firebase mR;

angular – 如何创建配置文件(tsconfig.json,typings.json,package.json)?

angular – 如何创建配置文件(tsconfig.json,typings.json,package.json)?

我可以从 https://angular.io/guide/quickstart复制这些文件.

但我想更多地了解这些文件.

我们如何手动创建它?

从哪里可以了解更多关于这些文件的信息?

的package.json

包括有关项目使用的包和库的信息,
还可以包含npm脚本,它有助于运行应用程序的任务,如运行测试,构建js等等……

npm init来初始化新的package.json文件

文档:
npm docs

tsconfig.json

提供有关将过程打字稿编译为javascript的信息.在哪个版本应该编译ts,js文件应该包括源映射,以及此文件中通常描述的此类信息.

tsc –init到init新的tsconfig.json文件

docs:tsconfig docs

typings.json

包括对外部库的定义类型文件的引用,它可以帮助您的应用程序更智能感知.如果要为应用程序编写类型,则需要了解所使用的其他库的类型.

typings init初始化新的typings.json文件(应全局或本地安装)

更多信息:

typings package(帮助生成typings.json文件并保存依赖项)

types defenitions(库类型定义数据库)

full tsconfig scheme

希望它能帮到你!

今天的关于如何从 JavaScript 中的 json 脚本获取对象js获取json对象的值的分享已经结束,谢谢您的关注,如果想了解更多关于Ajax & Json 4.Json 的使用 & Ajax 与 Json 配合使用、Android - 封装 JSON 数据(JSON 对象 / JSON 数组)、Android Studio - 如何从 google-services.json 获取 Firebase URL?因为当我打开 google-services.json 时,firebase URL 没有代码、angular – 如何创建配置文件(tsconfig.json,typings.json,package.json)?的相关知识,请在本站进行查询。

本文标签: