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 错误 [渲染根实例时出错]