js中json方法加载的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中json方法加载的问题相关的知识,希望对你有一定的参考价值。

js中使用json在一个form表单的层中添加了一个多选按钮,这个多选按钮调用另一个js文件中的一个方法,然后点击这个按钮会找不到这个方法。但是我要是调用本页面的方法,又可以,求高手指教。

参考技术A   json方法加载可以表示以下三种值:
  简单值:如字符串、数值、布尔值和null,但不支持undefined。
  对象:对象作为一种复杂的数据类型,表示是一组无序的键值对儿,值可以是简单值也可以复杂的数据。
  数组:数组作为一种复杂的数据类型,表示是一组有序的列表儿,可以通过索引来获取引用的值,值可以是简单值,也可以复杂数据对象。
  一个简单的JSON示例:

"name": "Jack",
"age": 30,
"isMan": true,
"school":
"name": "Lonton University",
"location": "English"

参考技术B 示例如下:

复制代码

<script type="text/javascript" language="javascript">

var languages =

cn:

lang:'ch',

name:"中文"

,

en:

lang:"英文",

name:"en"



;

document.write(languages.cn.name);

</script>

复制代码

=====================================================================

请问有没有详细的js读取json的例子方法

//根据city获得name

function getNameByCity(city)



var cityName =



"0556":"安庆市",

"0372":"安阳市",

;

return cityName[city];



=====================================================================

js 中读取JSON的方法探讨

js读取JSON的方法我接触到的有两种:

方法一:函数构造定义法返回

var strJSON = "name:'json name'";//得到的JSON

var obj = new Function("return" + strJSON)();//转换后的JSON对象

alert(obj.name);//json name

方法二:js中著名的eval函数

var strJSON = "name:'json name'";//得到的JSON

var obj = eval( "(" + strJSON + ")" );//转换后的JSON对象

alert(obj.name);//json name

第二种方法需要注意的是,对象表达式'name':'json name'必须用“()”扩住,否则

var strJSON = "name:'json name'";

var obj = eval(strJSON);

alert(obj.constructor);//String 构造函数

alert(obj.name);//undefine

必须把对象表达式扩起来eval执行才能生成一个匿名对象!

文章来源于易贤网http://www.ynpxrz.com/n766296c2025.aspx
参考技术C 把这个JS文件内容复制到页面试试,可能没有加载进来。追问

加载了,我在表单中写个多选按钮就能调用到,但是用json动态写入一个多选按钮,然后调用这个方法就不行。

追答

看看你的代码,是不是没有正确转换。

追问

我做过一个测试,使用json将一个调用外部js的单击事件动态载入一个表单的层中,然后调用会报错,所以不存在代码错误

追答<html>
<head>
<title></title>
<STYLE type="text/css">
.frm
width: 300px;
height: 300px;
background-color:red;

</STYLE>
<script type="text/javascript">
<!--
function fn()
alert(\'hi\');

//-->
var jStr = \'func:fn\';
var f = eval(jStr);
alert(f);
window.onload= function()
document.getElementById("div1").onclick=f;



</script>

</head>
<body>
<div id="div1" class="frm" ;><FORM method="post" action="">

</FORM></div>
</body>
</html>

是这样载入吗?

如何正确加载three.js中的json模型?

【中文标题】如何正确加载three.js中的json模型?【英文标题】:How to load json models in three.js properly? 【发布时间】:2013-06-10 20:06:43 【问题描述】:

我很难在 three.js 中加载 JSON 模型。我制作了一个非常简单的管状模型并在搅拌机中对其进行纹理处理。问题是每当我尝试在 three.js 中加载 json 模型时,顶点看起来很奇怪。

我尝试使用不同的设置导出模型,但总是遇到同样的问题,所以我认为问题出在我的代码中。

编辑:否定。我加载了水牛模型,看起来应该。知道我在搅拌机中做错了什么吗?

<html>
<head>
    <style>
        canvas 
            width: 100%;
            height: 100%;
        
    </style>
</head>
<body>
    <script src="threejs/three.min.js"></script>
    <script>
        var scene = new THREE.Scene();
        var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);

        var renderer = new THREE.WebGLRenderer();
        renderer.setSize(window.innerWidth, window.innerHeight);
        document.body.appendChild(renderer.domElement);

        var loader = new THREE.JSONLoader();
        loader.load( "models/test.js", modelToScene );


        var ambientLight = new THREE.AmbientLight(0x111111);
        scene.add(ambientLight);

        var light = new THREE.PointLight( 0xFFFFDD );
        light.position.set( -15, 10, 15 );
        scene.add( light );

        function modelToScene( geometry, materials ) 
            var material = new THREE.MeshFaceMaterial( materials );
            obj = new THREE.Mesh( geometry, material );
            obj.scale.set(1,1,1);
            scene.add( obj );

        

        camera.position.z = 5;
        camera.position.y = 1;

        var render = function () 
            requestAnimationFrame(render);

            obj.rotation.y += 0.01;
            obj.rotation.x += 0.02;

            renderer.render(scene, camera);
        ;

        render();
    </script>
</body>

我们将不胜感激。

谢谢,尤卡·科霍宁

【问题讨论】:

【参考方案1】:

我在导出 JSON 模型时犯了一些严重的错误。对于所有从 Blender 导出时遇到问题的人。我建议您检查一下您的导出设置。

对我来说,它适用于以下设置;

几何: 顶点:检查,面:检查,法线:检查,蒙皮:检查

材料:检查所有

设置:翻转 YZ:检查

动画:变形动画

以及所有方法:检查

【讨论】:

以上是关于js中json方法加载的问题的主要内容,如果未能解决你的问题,请参考以下文章

由于异步 JSON 加载,Vue.js 错误 [渲染根实例时出错]

有没有办法将 json 文件与所有其他 js 文件一起加载? [复制]

使用 ftp:/// 加载大型 json 对象的有效方法

如何正确加载three.js中的json模型?

Fabric js从JSON加载画布

加载多个 JSON 文件 [重复]